Foxtable(狐表)用户栏目专家坐堂 → 求计算工资代码方法


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

主题:求计算工资代码方法

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


加好友 发短信
等级:童狐 帖子:273 积分:2357 威望:0 精华:0 注册:2015/12/11 4:29:00
  发帖心情 Post By:2016/4/6 18:00:00 [只看该作者]

但这样生成新的一行时就不会自动计算了.
看来还是增加一列好了,或就算两次好


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/6 18:03:00 [只看该作者]

Select Case e.DataCol.name  '计算剩余产值到组长剩余提成
    Case "剩余产值","剩余提成"

 

应该改成

 

Select Case e.DataCol.name  '计算剩余产值到组长剩余提成
    Case "部门", "日期"

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


加好友 发短信
等级:童狐 帖子:273 积分:2357 威望:0 精华:0 注册:2015/12/11 4:29:00
  发帖心情 Post By:2016/4/6 18:12:00 [只看该作者]

一开始逻辑不对,本意是组长从自己的"剩余提成"分给手下,补偿手下工资,避免日工资过低

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/6 18:29:00 [只看该作者]

 现在有什么问题?如果没解决。把你的数据库发上来测试。

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


加好友 发短信
等级:童狐 帖子:273 积分:2357 威望:0 精华:0 注册:2015/12/11 4:29:00
  发帖心情 Post By:2016/4/6 19:04:00 [只看该作者]

敏感数据不方便全部上传.

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/6 19:27:00 [只看该作者]

 那你现在的问题是什么?做什么操作以后,执行什么代码,最后达到什么效果?

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


加好友 发短信
等级:童狐 帖子:273 积分:2357 威望:0 精华:0 注册:2015/12/11 4:29:00
  发帖心情 Post By:2016/4/6 19:32:00 [只看该作者]

最后效果达到了,谢谢

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


加好友 发短信
等级:童狐 帖子:273 积分:2357 威望:0 精华:0 注册:2015/12/11 4:29:00
  发帖心情 Post By:2016/4/11 21:24:00 [只看该作者]

Select Case e.DataCol.name  '计算剩余产值到组长剩余提成
    Case "剩余产值","剩余提成"
        Dim cnt As Double '计算汇总每部门每人每日产值
        cnt = DataTables("员工工资表").Compute("Sum([剩余产值])", "[部门] = '" & e.DataRow("部门") & "'  and [日期] = '" & e.DataRow("日期") & "'")
        Dim cnt1 As Double '计算汇总剩余手工分配提成
        cnt1 = DataTables("员工工资表").Compute("Sum([剩余提成])", "[职位] <> '组长'  And [部门] = '" & e.DataRow("部门") & "' and [日期] = '" & e.DataRow("日期") & "'")        
         Dim dr As DataRow '结算填写到组长剩余提成
        Dim Filter11 As String
        Filter11 = "[职位] = '组长'  And [部门] = '" & e.DataRow("部门") & "' and [日期] = '" & e.DataRow("日期") & "'"
        dr = DataTables("员工工资表").Find(Filter11 )

        
        If dr IsNot Nothing Then '如果找到
            dr("剩余提成")=cnt-cnt1
        Else '如果没找到就新建一行
            Dim dr1 As DataRow '
            Dim Filter12 As String
            Filter12 = "[职位] = '组长'  And [部门] = '" & e.DataRow("部门") & "'"
            dr1 = DataTables("员工资料表").Find(Filter12 ) '到员工表找相应组长名字
            If dr1 IsNot Nothing Then '如果找到
                dr = DataTables("员工工资表").AddNew()
                dr("姓名") = DR1("姓名")
                dr("日期") = e.DataRow("日期")
                dr("剩余提成")=cnt-cnt1
            End If
        
End If
End Select



原来每个部门组长只有1位时没问题,现车床部有两位组长,要平分相应部门的剩余产值.代码怎么改


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/11 21:56:00 [只看该作者]

Select Case e.DataCol.name  '计算剩余产值到组长剩余提成
    Case "剩余产值","剩余提成"
        Dim cnt As Double '计算汇总每部门每人每日产值
        cnt = DataTables("员工工资表").Compute("Sum([剩余产值])", "[部门] = '" & e.DataRow("部门") & "'  and [日期] = '" & e.DataRow("日期") & "'")
        Dim cnt1 As Double '计算汇总剩余手工分配提成
        cnt1 = DataTables("员工工资表").Compute("Sum([剩余提成])", "[职位] <> '组长'  And [部门] = '" & e.DataRow("部门") & "' and [日期] = '" & e.DataRow("日期") & "'")
        Dim dr As DataRow '结算填写到组长剩余提成
        Dim Filter11 As String
        Filter11 = "[职位] = '组长'  And [部门] = '" & e.DataRow("部门") & "' and [日期] = '" & e.DataRow("日期") & "'"
        dr = DataTables("员工工资表").Find(Filter11 )
       
       
       
        If dr IsNot Nothing Then '如果找到
            dr("剩余提成")=cnt-cnt1
        Else '如果没找到就新建一行
           
            Dim Filter12 As String
            Filter12 = "[职位] = '组长'  And [部门] = '" & e.DataRow("部门") & "'"
            Dim drs As List(of DataRow) = DataTables("员工资料表").Select(Filter12 ) '到员工表找相应组长名字
            For Each dr1 As DataRow In drs
                dr = DataTables("员工工资表").AddNew()
                dr("姓名") = DR1("姓名")
                dr("日期") = e.DataRow("日期")
                dr("剩余提成")=(cnt-cnt1) / drs.count
            Next

        End If
End Select

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