Foxtable(狐表)用户栏目专家坐堂 → 把三个表内容自动统计到一个表内


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

主题:把三个表内容自动统计到一个表内

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/7 14:20:00 [显示全部帖子]


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/7 14:35:00 [显示全部帖子]

参考代码

 

Dim dt As DataTable = DataTables("总表")
Dim dt1 As DataTable = DataTables("进仓表")
Dim dt2 As DataTable = DataTables("出仓表")
Dim dt3 As DataTable = DataTables("材料表")
Dim ys As String() = {"2017"}
For Each y As String In ys
    For Each dr As DataRow In dt3.Select("")
        Dim ndr As DataRow = dt.AddNew
        ndr("年份") = new Date(y, 1, 1)
        ndr("编号") = dr("编号")
        ndr("材料名称") = dr("材料名称")
        ndr("单位") = dr("单位")
        Dim filter As String = "编号 = '" & dr("编号") & "'"
        ndr("结存_数量") = dt1.Compute("sum(进仓数量)", filter) - dt2.Compute("sum(出仓数量)", filter)
        ndr("结存_金额") = dt1.Compute("sum(进仓金额)", filter) - dt2.Compute("sum(出仓金额)", filter)
        Dim d As Date = new Date(y, 1, 1)
        Dim filter1 = "编号 = '" & dr("编号") & "' and 进仓日期 >= #" & d & "# And 进仓日期 < #" & d.AddMonths(1) & "#"
        Dim filter2 = "编号 = '" & dr("编号") & "' and 出仓日期 >= #" & d & "# And 出仓日期 < #" & d.AddMonths(1) & "#"
        ndr("一月_进仓_数量") = dt1.Compute("sum(进仓数量)", filter1)
        ndr("一月_进仓_金额") = dt1.Compute("sum(进仓金额)", filter1)
    Next
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/14 16:18:00 [显示全部帖子]

 不行,无法动态添加那些列。添加后控制更麻烦。

 

 还不如用你原来的代码,看3楼方法。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/14 17:21:00 [显示全部帖子]

看懂代码,改动.

 

红色代码是变动的,复制多段,简单修改,统计和赋值,即可。

 

Dim dt As DataTable = DataTables("总表")
Dim dt1 As DataTable = DataTables("进仓表")
Dim dt2 As DataTable = DataTables("出仓表")
Dim dt3 As DataTable = DataTables("材料表")
Dim ys As String() = {"2017","2018"}
For Each y As String In ys
    For Each dr As DataRow In dt3.Select("")
        Dim ndr As DataRow = dt.AddNew
        ndr("年份") = new Date(y, 1, 1)
        ndr("编号") = dr("编号")
        ndr("材料名称") = dr("材料名称")
        ndr("单位") = dr("单位")
        Dim filter As String = "编号 = '" & dr("编号") & "'"
        ndr("结存_数量") = dt1.Compute("sum(进仓数量)", filter) - dt2.Compute("sum(出仓数量)", filter)
        ndr("结存_金额") = dt1.Compute("sum(进仓金额)", filter) - dt2.Compute("sum(出仓金额)", filter)
        Dim d As Date = new Date(y, 1, 1)
        Dim filter1 = "编号 = '" & dr("编号") & "' and 进仓日期 >= #" & d & "# And 进仓日期 < #" & d.AddMonths(1) & "#"
        Dim filter2 = "编号 = '" & dr("编号") & "' and 出仓日期 >= #" & d & "# And 出仓日期 < #" & d.AddMonths(1) & "#"
        ndr("一月_进仓_数量") = dt1.Compute("sum(进仓数量)", filter1)
        ndr("一月_进仓_金额") = dt1.Compute("sum(进仓金额)", filter1)

    Next
Next


 回到顶部