Foxtable(狐表)用户栏目专家坐堂 → [求助]计算年功工资的代码不对


  共有2373人关注过本帖树形打印复制链接

主题:[求助]计算年功工资的代码不对

帅哥哟,离线,有人找我吗?
hanzhang98
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
[求助]计算年功工资的代码不对  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/3 21:17:00 [只看该作者]

这样?

 

Dim dr As DataRow = DataTables("年功表").Find("累计工龄 <= " & bm & "", "累计工龄 desc")


 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/4/3 21:58:00 [只看该作者]

谢谢老师指导。
再请教老师,现“工资表”的“连续工龄”列的值是从“员工表”复制而来,在“员工表”需要保留一位小数,而“工资表”是需要整数,将“工资表”的“连续工龄”取整的代码如何写。请老师帮助。谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/3 22:00:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/3 23:54:00 [只看该作者]

如果报错。上传实例测试。

 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:763 积分:6319 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2019/4/4 7:52:00 [只看该作者]

If e.DataRow.IsNull("责任工资") = False Then        '责任工资是否为空("Is"是/"IsNull"不是)                
                    e.DataRow("年功金额") = Nothing         '不为空,则清除(或不写入)年功金额
                Else
                    e.DataRow("年功金额") = dr("计发标准")  '为空,写入
                End If                 

 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/4/4 8:02:00 [只看该作者]

谢谢指导。但还是不行,按您的指导,现在又全不写入了(不管“责任工资”是不是空,均不写入)。还请老师费心修正。
[此贴子已经被作者于2019/4/4 8:07:50编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/4/4 8:07:00 [只看该作者]

如果把这句“If e.DataRow.IsNull("责任工资") = False Then”改为“If e.DataRow.IsNull("责任工资") = True Then”,又全写入了(不管“责任工资”是不是空,均写入)。还请老师费心修正。
[此贴子已经被作者于2019/4/4 8:08:06编辑过]

 回到顶部
总数 20 1 2 下一页