以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]求[薪级档次]列代码,置于表事件DataColChanged中??  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=175583)

--  作者:老鼠
--  发布时间:2022/3/10 14:28:00
--  [求助]求[薪级档次]列代码,置于表事件DataColChanged中??

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20220310142141.png
图片点击可在新窗口打开查看
现有两表:<工资标准>与<工资异动>;[薪级档次]列位于<工资异动>表中.薪级档次共两个结果,一个是专技薪级档次另一个是工勤薪级档次;区分由[员工属性]列决定:[员工属性]列=工勤,时为工勤薪级否则为专技薪级.薪级档次=学历对应薪级+工龄.
图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20220310142132.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2022/3/10 14:51:00
--  
请上传实例说明
--  作者:老鼠
--  发布时间:2022/3/10 15:48:00
--  
这是上传实例:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:临聘员工管理.table



--  作者:有点蓝
--  发布时间:2022/3/10 15:54:00
--  
说一下,希望做什么?在哪个表,填入什么数据?查询的数据填入哪里?
--  作者:老鼠
--  发布时间:2022/3/10 16:49:00
--  
工资异动表,薪级档次列,填入工资标准表的薪级列数据,计算方法:首先判断员工属性与学历,例如:员工学历=大学专科,员工属性=工勤,那么签订合同后他的薪级档次=8;再例如:员工学历=大学专科,员工属性=工勤,那么签订合同后的第2年他的薪级档次=9(就是加了1年工龄);再例如:员工学历=大学本科,员工属性不等于"工勤",那么签订合同后的薪级档次=7;再例如:员工学历=中等专科,员工属性不等于"工勤",那么签订合同后的第3年,薪级档次=4.
--  作者:有点蓝
--  发布时间:2022/3/10 17:22:00
--  
datacolchanged事件的dj不已经计算出来了吗,直接给薪级档次赋值不就行了

Dim dj As Integer = fdr2("工勤薪级") + iif(e.DataRow("工龄")>1,e.DataRow("工龄"),0)
Dim fdr3 As DataRow = dt.find("薪级 = \'" & dj & "\'")
e.DataRow("现薪级工资") = fdr3("工勤薪金")
e.DataRow("薪级档次") = dj


--  作者:老鼠
--  发布时间:2022/3/11 10:00:00
--  
感谢!可是新增行后[薪级档次]没有数据哦!这个如何解决???
以下是修改后的代码:

If e.DataRow("员工属性") = "工勤" Then

Dim dj As Integer = fdr2("工勤薪级") + iif(e.DataRow("工龄")>1,e.DataRow("工龄"),0)

Dim fdr3 As DataRow = dt.find("薪级 = \'" & dj & "\'")

e.DataRow("现薪级工资") = fdr3("工勤薪金")

e.DataRow("薪级档次") = dj

Else

Dim dj As Integer = fdr2("专技薪级") + iif(e.DataRow("工龄")>1,e.DataRow("工龄"),0)

Dim fdr3 As DataRow = dt.find("薪级 = \'" & dj & "\'")

e.DataRow("现薪级工资") = fdr3("专技薪金") 

e.DataRow("薪级档次") = dj

End If



--  作者:有点蓝
--  发布时间:2022/3/11 10:05:00
--  
代码里判断了4个列,要这4个列都有值才会计算