Foxtable(狐表)用户栏目专家坐堂 → 如何实现多表导入数据计算


  共有2097人关注过本帖平板打印复制链接

主题:如何实现多表导入数据计算

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


加好友 发短信
等级:五尾狐 帖子:1152 积分:7712 威望:0 精华:0 注册:2019/6/13 9:57:00
如何实现多表导入数据计算  发帖心情 Post By:2019/8/19 15:15:00 [只看该作者]

 如何实现多表导入数据计算

1.“员工工资表”有“年月,员工编号,姓名,应出勤天数,实际出勤,计时工资,
,计件工资,附加工资”字段;
2.“员工工资表”中的“年月,员工编号,姓名"字段与“考勤表”“员工附加表”
    “员工计时工资表”的字段相同;
3. “员工工资表”计算工资,须从“考勤表”引入考勤记录,从“员工附加表”引入员工附加金额,从“员工计件表”引入计件工资,从“员工
计时工资表”引入计时工资,后才能计算;
4.实际出勤,是考勤表用表达式计算出来的值,附加工资,是员工附加表用表达式
计算出来的的值。

1.1考勤表

年月,      员工编号,姓名,应出勤天数,实际出勤
201907      A01        张三       22               21
201907      A02        李四      22               21

1.2员工附加表
年月,      员工编号,姓名,总附加金额
201907      A01        张三         22 0              
201907      A02        李四         52 0              


1.3计时工资

年月,      员工编号,姓名,总计时工资
201907      A01        张三         22 0  2            
201907      A02        李四         52 0  2     


1.4计件工资

年月,      员工编号,姓名,总计件工资
201907      A01        张三         12 0  2            
201907      A02        李四         22 0  2     


要计算     1.5员工工资表

年月,员工编号,姓名,应出勤天数,实际出勤,计时工资,计件工资,附加工资   合计


注,如果无出勤员工的记录,其附加工资等相关记录为“0”,不导入或不显示。



注,用跨表引用实现不了

如果有十几列甚至更多列的数据需要继承,上面代码可能会显得过于繁琐,为此我们可以考虑将代码改写为:

If e.DataCol.Name = "产品编号" Then
    Dim
nms() As String = {"品名","型号","规格","单价"}
    If
e.NewValue Is Nothing Then

        For
Each nm As String In nms

            e
.DataRow(nm) = Nothing

        Next

    Else

        Dim
dr As DataRow

        dr
= DataTables("产品").Find("[产品编号] = '" & e.NewValue &
"'")
        If
dr IsNot Nothing
            For Each
nm As String In nms
               
e.DataRow(nm) = dr(nm)
            Next
        End If
    End If
End If

这样不管有多少列,我们都只需修改下面这样代码,增加和删除列名即可:

Dim nms() As String = {"品名","型号","规格","单价"}

这种编码方式在处理大量重复任务的时候很实用,应该仔细体会掌握。


不知道如何实现,请老师指教,谢谢!




 回到顶部
总数 12 1 2 下一页