Foxtable(狐表)用户栏目专家坐堂 → [求助]跨表提取个税率和扣除数的代码


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

主题:[求助]跨表提取个税率和扣除数的代码

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
[求助]跨表提取个税率和扣除数的代码  发帖心情 Post By:2019/4/13 17:56:00 [只看该作者]

老师好。根据“实发工资”,跨表从“个人所得税预扣率表A”提取符合的税率、速算扣除数,并分别写入“个税率”和“速算扣除数”这两列。但代码不对,请老师帮助指正。谢谢。

Select Case e.DataCol.name
    Case "实发工资","预扣税率","速算扣除数"     '
        If e.DataRow.IsNull("实发工资") Then        '
            e.DataRow("扣个税") = Nothing     '
            e.DataRow("速算扣除数") = Nothing     '
        Else
            Dim Ljy As String = e.DataRow("实发工资")  '
            Dim Yksl As DataRow = DataTables("个人所得税预扣率表A").Find("累计应纳税所得额='" & e.DataRow("累计应税所得额") & "' And 最小值 < " & Ljy & " and 最大值 >= " & Ljy)
            If Yksl IsNot Nothing Then
                e.DataRow("预扣税率") = Yksl("预扣税率")
                e.DataRow("速算扣除数") = Yksl("速算扣除数")
            Else
                e.DataRow("预扣税率") = Nothing
                e.DataRow("速算扣除数") = Nothing
            End If
        End If
End Select



[此贴子已经被作者于2019/4/14 16:24:49编辑过]

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


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

老师好。请老师帮助指导。谢谢。

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


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

Select Case e.DataCol.name
    Case "实发工资","预扣税率","速算扣除数"     '
        If e.DataRow.IsNull("实发工资") Then        '
            e.DataRow("速算扣除数") = Nothing     '
        Else
            Dim Ljy As String = e.DataRow("实发工资")  '
            Dim Yksl As DataRow = DataTables("个人所得税预扣率表A").Find("累计应纳税所得额>=" & ljy, "累计应纳税所得额")
            If Yksl IsNot Nothing Then
                e.DataRow("速算扣除数") = Yksl("速算扣除数")
            Else
                e.DataRow("速算扣除数") = Nothing
            End If
        End If
End Select

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


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

谢谢老师。
[此贴子已经被作者于2019/4/14 15:42:51编辑过]

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


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

老师好。再请教老师,如何将下面【判断发生变动列】的相关代码去掉改为随时根据“累计应纳税所得额”列的数值变化随时计算提取“税率” 和 “速算扣除数” 。l因为需要计算和输入的列太多,有手工输入数值的列、有跨表取数的列、还有表达式计算列,如果其中只要有一列不写入【判断发生变动列】代码中,则计算提取“税率” 和 “速算扣除数”的代码就不运行。

也就是:1、能不能将下面代码的黄色部分去掉;   
           2、如果能去掉黄色部分的代码,剩余的代码需要如何修改,才能随时根据“累计应纳税所得额”列的数值变化随时计算提取“税率” 和 “速算扣除数” 。

Select Case e.DataCol.name
    Case "实发工资","预扣税率","速算扣除数"     '
        If e.DataRow.IsNull("实发工资") Then        '
            e.DataRow("速算扣除数") = Nothing     '
        Else

            Dim Ljy As String = e.DataRow("实发工资")  '
            Dim Yksl As DataRow = DataTables("个人所得税预扣率表A").Find("累计应纳税所得额>=" & ljy, "累计应纳税所得额")
            If Yksl IsNot Nothing Then
                e.DataRow("速算扣除数") = Yksl("速算扣除数")
            Else
                e.DataRow("速算扣除数") = Nothing
            End If
        End If
End Select

谢谢。
[此贴子已经被作者于2019/4/14 16:24:27编辑过]

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


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

改成

 

Select Case e.DataCol.name
    Case "速算扣除数"
    Case Else
        Dim Ljy As String = e.DataRow("实发工资")  '
        Dim Yksl As DataRow = DataTables("个人所得税预扣率表A").Find("累计应纳税所得额>=" & ljy, "累计应纳税所得额")
        If Yksl IsNot Nothing Then
            e.DataRow("速算扣除数") = Yksl("速算扣除数")
        Else
            e.DataRow("速算扣除数") = Nothing
        End If
End Select


 回到顶部