Foxtable(狐表)用户栏目专家坐堂 → 出错不知原因


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

主题:出错不知原因

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


加好友 发短信
等级:五尾狐 帖子:1015 积分:7119 威望:0 精华:0 注册:2008/9/1 22:34:00
出错不知原因  发帖心情 Post By:2010/7/7 14:48:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:15.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/7/7 14:54:00 [只看该作者]

贴出代码

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


加好友 发短信
等级:五尾狐 帖子:1015 积分:7119 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2010/7/7 15:08:00 [只看该作者]

Select Case e.DataCol.Name
    Case "数据状态" '如果是数据状态列的内容变动
        If e.NewValue = True Then '而且变动后的值是True(已勾选)
            e.DataRow("审核时间")=Date.Now
            e.DataRow("审核用户")=Vars("_UserName")
            e.DataRow.Locked = True
        Else e.DataRow("审核时间")=Nothing
            e.DataRow("审核用户")=Nothing
        End If
    Case "工号"
        Dim dr As DataRow
        dim dr1 as datarow
        dim dr2 as datarow
        dr = DataTables("工资录入表").Find("工号 = '" & e.DataRow("工号") & "'" & "and 会计期间= '" & e.DataRow("会计期间") & "'" )
        dr1= DataTables("月工资汇总").Find("工号 = '" & e.DataRow("工号") & "'" & "and 会计期间= '" & e.DataRow("会计期间") & "'" )
        dr2 = DataTables("员工资料").Find("工号 = '" & e.DataRow("工号") & "'" & "and 员工状态 = '在职'")
        If dr IsNot Nothing '如果找到, 则设置各列内容
            e.DataRow("姓名")= dr("姓名")
            e.DataRow("交税人")= dr("姓名")
            e.DataRow("部门")= dr("部门")
            e.DataRow("应付工资")= dr1("应付工资_小计")
            e.DataRow("身份证号码")= dr2("身份证号码")
            e.DataRow("社保缴费率")= dr2("社保缴费率")
            e.DataRow("医疗费率")= dr2("医疗费率")
            e.DataRow("社保电脑号")= dr2("社保电脑号")
            e.DataRow("银行账号")= dr2("银行账号")

        Else
            '否则清除部门和姓名两列的内容
            e.DataRow("部门") =Nothing
            e.DataRow("姓名") =Nothing
            e.DataRow("交税人") =Nothing
            e.DataRow("工号") = "在这个期间查无此人?"
            e.DataRow("应付工资")= Nothing
            e.DataRow("身份证号码")= Nothing
            e.DataRow("社保缴费率")= Nothing
            e.DataRow("医疗费率")= Nothing
            e.DataRow("社保电脑号")= Nothing
            e.DataRow("银行账号")= Nothing
        End If
    Case "节日未上班_总计小时"
       
        Dim Filter As String = "工号 = '" & e.DataRow("工号") & "'" & "and 会计期间= '" & e.DataRow("会计期间") & "'"
        DataTables("月工资汇总").DataCols("工号").RaiseDataColChanged(Filter)
    case "应付工资"
        if e.DataRow("应付工资")*0.13>=2328 then
            e.DataRow("住房补贴")=2328
        else
        Dim Digits As Integer = 2
        Dim Value As Double = e.DataRow("应付工资")*0.13
        e.DataRow("住房补贴")=Math.Floor(Value * 10 ^ Digits + 0.5) / 10 ^ Digits '四舍五入
        end if
       
        if e.DataRow("代扣费_手工输入")= False then
           
            Dim Digits As Integer = 2
            Dim Value As Double = (e.DataRow("应付工资")*e.DataRow("社保缴费率"))+e.DataRow("医疗费率")
            dim Value1 As Double = e.DataRow("应付工资")*e.DataRow("社保缴费率")
            dim Value2 As Double=e.DataRow("应付工资")*(0.1-e.DataRow("社保缴费率"))
            e.DataRow("代扣费_社会保险")=Math.Floor(Value * 10 ^ Digits + 0.5) / 10 ^ Digits '四舍五入
            e.DataRow("养老")=Math.Floor(Value1 * 10 ^ Digits + 0.5) / 10 ^ Digits '四舍五入
            if e.DataRow("医疗费率")>0 then
                e.DataRow("医序")=e.DataRow("医疗费率")
            else
                e.DataRow("医序")=Math.Floor(Value2 * 10 ^ Digits + 0.5) / 10 ^ Digits '四舍五入
            end if
        end if
        e.DataRow("代扣费_个人所得税")=InTax(e.DataRow("应付工资")-e.DataRow("代扣费_社会保险")-e.DataRow("住房补贴")-e.DataRow("起始缴税月收入"))
        e.DataRow("税金")=InTax(e.DataRow("应付工资")-e.DataRow("代扣费_社会保险")-e.DataRow("住房补贴")-e.DataRow("起始缴税月收入"))
        if e.DataRow("应付工资") >= e.DataRow("起始缴税月收入") then
            e.DataRow("税表收入额")=e.DataRow("应付工资")-e.DataRow("费用额")-e.DataRow("代扣费_社会保险")-e.DataRow("住房补贴")
            e.DataRow("计税金额")=e.DataRow("应付工资")-e.DataRow("起始缴税月收入")-e.DataRow("代扣费_社会保险")-e.DataRow("住房补贴")
        else
            e.DataRow("税表收入额")=Nothing
            e.DataRow("计税金额")=Nothing
        end if


    case "代扣费_社会保险","代扣费_个人所得税","代扣费_其他费用_水费","代扣费_其他费用_电费","代扣费_其他费用_管理费","代扣费_其他费用_其他"
        e.DataRow("代扣费_小计")= e.DataRow("代扣费_社会保险")+e.DataRow("代扣费_个人所得税")+e.DataRow("代扣费_其他费用_水费")+e.DataRow("代扣费_其他费用_电费")+e.DataRow("代扣费_其他费用_管理费")+e.DataRow("代扣费_其他费用_其他")
               
    case "应付工资","代扣费_社会保险","住房补贴"
        e.DataRow("代扣费_个人所得税")=InTax(e.DataRow("应付工资")-e.DataRow("代扣费_社会保险")-e.DataRow("住房补贴")-e.DataRow("起始缴税月收入"))
        e.DataRow("税金")=InTax(e.DataRow("应付工资")-e.DataRow("代扣费_社会保险")-e.DataRow("住房补贴")-e.DataRow("起始缴税月收入"))
        if e.DataRow("应付工资") >= e.DataRow("起始缴税月收入") then
            e.DataRow("税表收入额")=e.DataRow("应付工资")-e.DataRow("费用额")-e.DataRow("代扣费_社会保险")-e.DataRow("住房补贴")
            e.DataRow("计税金额")=e.DataRow("应付工资")-e.DataRow("起始缴税月收入")-e.DataRow("代扣费_社会保险")-e.DataRow("住房补贴")
        else
            e.DataRow("税表收入额")=Nothing
            e.DataRow("计税金额")=Nothing
        end if
       
    case "计税金额"
        Select Case e.DataRow("计税金额")
            case 0
                e.DataRow("税率")=Nothing
                e.DataRow("速算扣除数")=Nothing
            case 1 to 500
                e.DataRow("税率")=0.05
                e.DataRow("速算扣除数")=0
            case 501 to 2000
                e.DataRow("税率")=0.1
                e.DataRow("速算扣除数")=25
            case 2001 to 5000
                e.DataRow("税率")=0.15
                e.DataRow("速算扣除数")=125
            case 5001 to 20000
                e.DataRow("税率")=0.2
                e.DataRow("速算扣除数")=375
            case 20001 to 40000
                e.DataRow("税率")=0.25
                e.DataRow("速算扣除数")=1375
            case 40001to 60000
                e.DataRow("税率")=0.3
                e.DataRow("速算扣除数")=3375
            case 60001 to 100000
                e.DataRow("税率")=0.35
                e.DataRow("速算扣除数")=6375
            case 80000 to 100000
                e.DataRow("税率")=0.4
                e.DataRow("速算扣除数")=10375
            case > 100000
                e.DataRow("税率")=0.45
                e.DataRow("速算扣除数")=15375
        End Select
End Select


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


加好友 发短信
等级:五尾狐 帖子:1015 积分:7119 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2010/7/7 15:17:00 [只看该作者]

明白了,应该是员工资料的一个工人被删除了。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/7/7 15:45:00 [只看该作者]

 If dr IsNot Nothing '如果找到, 则设置各列内容

 

 改为:

 

 If dr IsNot Nothing AndAlso dr1 IsNot Nothing AndAlso dr2 IsNot Nothing Then

 


 回到顶部