以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求计算工资代码方法  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=83261)

--  作者:ouyangfenghuan
--  发布时间:2016/4/5 15:52:00
--  求计算工资代码方法
刚接触,复杂点点的代码不会写了,上头急要.求帮助.
项目有个"员工工资表" 要求根据 "员工资料表"中的员工的(部门)和(职位) 自动按生产日报表的当日产值 计算每位员工每日工资. 如第1张图
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:订单生产.foxdb


具体逻辑如下:
1.计算出每人每日累计产值;
2,当日提成=当日产值*当日比例;
3当日部门剩余产值总和默认全分给部门组长当剩余提成,可以手动分给操作员或技术员,相应组长剩余提成减少;
4当日工资=提成+剩余提成-扣餐-其它罚款+其它奖励



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

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

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

[此贴子已经被作者于2016/4/5 18:19:33编辑过]

--  作者:大红袍
--  发布时间:2016/4/5 16:22:00
--  
请上传具体foxtable例子,说明计算逻辑。
--  作者:ouyangfenghuan
--  发布时间:2016/4/5 16:55:00
--  
已编辑,请老师帮忙
--  作者:大红袍
--  发布时间:2016/4/5 17:27:00
--  
请上传foxtable项目。
--  作者:ouyangfenghuan
--  发布时间:2016/4/5 18:22:00
--  
是整个文件夹  还是  订单生产.foxdb
--  作者:大红袍
--  发布时间:2016/4/5 20:15:00
--  
密码贴出来。
--  作者:ouyangfenghuan
--  发布时间:2016/4/5 21:02:00
--  
2732
--  作者:大红袍
--  发布时间:2016/4/5 21:42:00
--  
 你还要把数据库上传上来。
--  作者:ouyangfenghuan
--  发布时间:2016/4/6 14:22:00
--  
请帮看下代码,如何避免计算2次
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



--  作者:大红袍
--  发布时间:2016/4/6 15:03:00
--  
Select Case e.DataCol.name  \'计算剩余产值到组长剩余提成
    Case "剩余产值","剩余提成"
        If e.DataRow.IsNull("剩余产值") = False AndAlso e.DataRow.IsNull("剩余提成") = False Then
 
 
        End If