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


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

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

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


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

老师们好!老师们帮助指导的代码没有问题。但问题是“问题原因是找出来了,但实在是处理不了”。现上传实例请老师们帮助。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目1.rar

问题原因是:如果在实例的“薪资计算表”的“责任工资”列,用手工输入数值,代码就运行正常、也计算正确。但只要是将实例的“薪资计算表”的“考核奖金”列的已有数值复制粘贴到“责任工资”列,代码就运行不正常、也计算不正确了。
   
      “薪资计算表”的“责任工资”列的数值是从“员工表”用代码复制而来的,为什么是“复制”来的数值,代码就不能计算了呢?是不是“复制来的数值”的问题呀?

      “员工表”的“责任工资”列是[单精度小数]、“薪资计算表”的“责任工资”列是[双精度小数]。是不是与这个有关呀?

      实在再找不出其它原因了。还请老师们、大侠们费心帮助指导。谢谢

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/4 9:14: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("责任工资") = False Then        '责任工资是否为空("Is"是/"IsNull"不是)
                    e.DataRow("年功金额") = Nothing         '不为空,则清除(或不写入)年功金额
                Else
                    e.DataRow("年功金额") = dr("计发标准")  '为空,写入
                End If
            End If
        End If
End Select

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


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

我又试了试,与数值格式好像没有关系。难道是从“员工表”复制而来的“数值”不是数值,或者是代码不认为它是数值,因此以“空值”来对待?请老师们帮助。谢谢

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


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

老师好!用您12楼给的代码也还是不行,就是复制过来的“数值”的问题,我又用现上传的实例2试了试,在实例2中又增加了一个“列一”,这个"列一”的数值是单精度小数手工输入。将"列一"手工输入的数值复制到“责任工资”列,代码运行计算正确,如果再将“考核奖金”列(从"员工表"复制来)的数值复制到“责任工资”列,代码就又不能计算了。是不是代码不认为它是数值,因此以"空值"对待。还请老师费心。谢谢。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目2.rar


[此贴子已经被作者于2019/4/4 9:36:25编辑过]

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


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

我测试没问题,可能是你的foxtable安装的有问题。

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


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

老师好!我用下面代码测试了下,就是只要是复制过来的,全显示为“0”
Dim dd As String = e.DataRow("责任工资")  
msgbox(dd)"

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


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

老师好。重新下载安装Foxtable也不行。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/4 11:03: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("责任工资") <> 0 Then        '责任工资是否为空("Is"是/"IsNull"不是)
                    e.DataRow("年功金额") = Nothing         '不为空,则清除(或不写入)年功金额
                Else
                    e.DataRow("年功金额") = dr("计发标准")  '为空,写入
                End If
            End If
        End If
End Select

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


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

谢谢甜老师。这下问题解决了。老师能解释下原因吗?释疑解惑。谢谢!

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


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

以下是引用hanzhang98在2019/4/4 11:41:00的发言:
谢谢甜老师。这下问题解决了。老师能解释下原因吗?释疑解惑。谢谢!

 

你想判断的是【值】是不是等于0,而不是是不是空。


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