以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]计算年功工资的代码不对 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=133007) |
-- 作者:hanzhang98 -- 发布时间:2019/4/3 21:12:00 -- [求助]计算年功工资的代码不对 老师好。下面的代码想根据当前表(“工资表”)的“连续工龄”列数值,在“年功表”的“累计工龄”列查找相符的行,并将“年功表”的"计发标准"列的值写入“工资表”的“年功金额”列,请老师帮助改正代码。谢谢。 Select Case e.DataCol.name Case "连续工龄" If e.DataRow.IsNull("连续工龄") Then e.DataRow("年功金额") = Nothing Else Dim bm As String = e.DataRow("连续工龄") Dim dr As DataRow = DataTables("年功表").Find("累计工龄 = \'" & bm & "\'") If dr IsNot Nothing Then e.DataRow("年功金额") = dr("计发标准") End If End If End Select |
-- 作者:有点甜 -- 发布时间:2019/4/3 21:17:00 -- 这样?
Dim dr As DataRow = DataTables("年功表").Find("累计工龄 <= " & bm & "", "累计工龄 desc") |
-- 作者:hanzhang98 -- 发布时间:2019/4/3 21:58:00 -- 谢谢老师指导。 再请教老师,现“工资表”的“连续工龄”列的值是从“员工表”复制而来,在“员工表”需要保留一位小数,而“工资表”是需要整数,将“工资表”的“连续工龄”取整的代码如何写。请老师帮助。谢谢
|
-- 作者:有点甜 -- 发布时间:2019/4/3 22:00:00 -- 参考
http://www.foxtable.com/webhelp/scr/1513.htm
http://www.foxtable.com/webhelp/scr/0281.htm
|
-- 作者:hanzhang98 -- 发布时间:2019/4/3 22:34:00 -- 老师好。麻烦老师再给看看,下面红色部分的代码不对,原意是[如果“责任工资”列不为空,则清除(或不写入)“年功金额”,否则写入],但现在是“责任工资”不为空也写入“年功金额”了。请老师帮助。谢谢 If e.DataRow.IsNull("责任工资") Then \'责任工资是否为空("Is"是/"IsNull"不是) e.DataRow("年功金额") = Nothing \'不为空,则清除(或不写入)年功金额 Else e.DataRow("年功金额") = dr("计发标准") \'为空,写入 End If [此贴子已经被作者于2019/4/4 7:31:49编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/4/3 23:54:00 -- 如果报错。上传实例测试。 |
-- 作者:hanzhang98 -- 发布时间:2019/4/4 7:30:00 -- 老师好。麻烦老师再给看看,下面红色部分的代码不对,原意是[如果“责任工资”列不为空,则清除(或不写入)“年功金额”,否则写入],但现在是“责任工资”不为空也写入“年功金额”了。请老师帮助。谢谢 Select Case e.DataCol.name Case "连续工龄" \' If e.DataRow.IsNull("连续工龄") Then \'连续工龄是否为空 e.DataRow("年功金额") = Nothing \'如果为空,则清除年功金额 Else Dim bm As String = e.DataRow("连续工龄") \'声明变量为"连续工龄" Output.Show(Round2(bm, 0)) \'将"连续工龄" 数值四舍五入为整数 Dim dr As DataRow = DataTables("年功工资标准").Find("累计工龄 <= " & bm & "", "累计工龄 desc") If dr IsNot Nothing Then If e.DataRow.IsNull("责任工资") Then \'责任工资是否为空("Is"是/"IsNull"不是) e.DataRow("年功金额") = Nothing \'不为空,则清除(或不写入)年功金额 Else e.DataRow("年功金额") = dr("计发标准") \'为空,写入 End If End If End If End Select |
-- 作者:wjl-se -- 发布时间:2019/4/4 7:52:00 -- If e.DataRow.IsNull("责任工资") = False Then \'责任工资是否为空("Is"是/"IsNull"不是) e.DataRow("年功金额") = Nothing \'不为空,则清除(或不写入)年功金额 Else e.DataRow("年功金额") = dr("计发标准") \'为空,写入 End If
|
-- 作者:hanzhang98 -- 发布时间:2019/4/4 8:02:00 -- 谢谢指导。但还是不行,按您的指导,现在又全不写入了(不管“责任工资”是不是空,均不写入)。还请老师费心修正。 [此贴子已经被作者于2019/4/4 8:07:50编辑过]
|
-- 作者:hanzhang98 -- 发布时间:2019/4/4 8:07:00 -- 如果把这句“If e.DataRow.IsNull("责任工资") = False Then”改为“If e.DataRow.IsNull("责任工资") = True Then”,又全写入了(不管“责任工资”是不是空,均写入)。还请老师费心修正。 [此贴子已经被作者于2019/4/4 8:08:06编辑过]
|