Foxtable(狐表)用户栏目专家坐堂 → [求助]求助扣款代码


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

主题:[求助]求助扣款代码

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


加好友 发短信
等级:婴狐 帖子:45 积分:477 威望:0 精华:0 注册:2017/4/4 11:20:00
[求助]求助扣款代码  发帖心情 Post By:2017/4/8 14:01:00 [只看该作者]

计算扣款
如果(出勤天数+病假)>=26,则不计算,
如果(出勤天数+病假)<26,
则用【应发金额】-【应发金额】/26*【26-(出勤天数+病假)】
 
整张表就差这个代码了。。求高手来帮我解答一下吧。
我自己胡乱的写了一半,完全写不下去了。

Select Case e.DataCol.name
    Case "出勤天数","病假"
        Dim dr As DataRow = e.DataRow
        dr("税前工资") =  _
        IIF(dr.IsNull("出勤天数"),0, dr("出勤天数")) -  _
        IIF(dr.IsNull("病假"),0,dr("病假"))
If dr IsNumeric ">=" 26 Then


End Select

 


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


加好友 发短信
等级:婴狐 帖子:45 积分:477 威望:0 精华:0 注册:2017/4/4 11:20:00
  发帖心情 Post By:2017/4/8 14:34:00 [只看该作者]

If e.DataCol.name = "出勤天数" Then
Dim dr As DataRow
    If e.DataRow("出勤天数" + "休假天数_病假") < 26  Then
        e.DataRow("应扣款项_扣款") = e.DataRow("应发金额合计") / 26 * (e.DataRow("出勤天数") + e.DataRow("休假天数_病假"))
    Else
        e.DataRow("应扣款项_扣款") = 0
    End If
End If

 

 

 

又重新写了个这个代码。。有人帮我看一下么


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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/4/8 14:54:00 [只看该作者]

参考:

Select Case e.DataCol.name
    Case "出勤天数","病假","应发金额合计"
        Dim dr As DataRow = e.DataRow
        Dim v1 As Integer = dr("出勤天数")
        Dim v2 As Integer = dr("病假")
        If v1 + v2 <= 26
            dr("应扣款项_扣款") =  e.DataRow("应发金额合计") / 26 * (26 -(v1 + v2))
        Else
            dr("应扣款项_扣款")  = Nothing
        End If
End Select


[此贴子已经被作者于2017/4/8 14:54:20编辑过]

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


加好友 发短信
等级:婴狐 帖子:45 积分:477 威望:0 精华:0 注册:2017/4/4 11:20:00
  发帖心情 Post By:2017/4/8 15:03:00 [只看该作者]

到double 转换无效

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/4/8 15:09:00 [只看该作者]

这些列有没有字符型的,改为数值型

Select Case e.DataCol.name
    Case "出勤天数","病假","应发金额合计"
        Dim dr As DataRow = e.DataRow
        If dr.Isnull("出勤天数")  OrElse dr.Isnull("应发金额合计")
            dr("应扣款项_扣款")  = Nothing
        Else
            Dim v1 As Integer = dr("出勤天数")
            Dim v2 As Integer = dr("病假")
            If v1 + v2 <= 26
                dr("应扣款项_扣款") =  e.DataRow("应发金额合计") / 26 * (26 -(v1 + v2))
            Else
                dr("应扣款项_扣款")  = Nothing
            End If
        End If
End Select

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


加好友 发短信
等级:婴狐 帖子:45 积分:477 威望:0 精华:0 注册:2017/4/4 11:20:00
  发帖心情 Post By:2017/4/8 15:28:00 [只看该作者]

之前那个公式完美解决了。

有2个问题

第一个是多了个空格

第二个是我的病假是考勤表调取的,考勤表是字符,所以调取不成功。我改了之后就完美了。

多谢了啊!


 回到顶部