以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于两个表两列差异统计问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71956)

--  作者:jlccrtl
--  发布时间:2015/7/21 12:54:00
--  [求助]关于两个表两列差异统计问题
A单位表格
 发票号码   产品名称   数量   单价  
   001A      5   1
   001B      7   2
   001C     9   3
            


B单位表格
 发票号码   产品名称   数量   单价  
   001B   7   2
   001C      7   3
   002D     11   4
            



现在想做一个
差异统计表
通过窗口达到如下:
 发票号码   产品名称  A单位产品数量   B单位产品数量   数量差异                  
   001A   5   0                    
   001B   7   7                     
   001C   9   7                     
   002D   0   11                     

怎么才能实现两个表的列“发票号码”自动填充到《差异统计表》
然后相同号码的“产品名称列”再接着填充到里面呢!
各位大神有啥好的建议!

单列差异统计的窗口公式如下 (不知道如何修改)

Dim f As New Filler

f.SourceTable = DataTables("A单位表格") \'指定数据来源

f.SourceCols = "发票号码" \'指定数据来源列

f.DataTable = DataTables("差异统计") \'指定数据接收表

f.DataCols = "发票号码" \'指定数据接收列

f.ExcludeExistValue = True

f.Fill() \'填充数据

f = New Filler

f.SourceTable = DataTables("B单位表格") \'指定数据来源

f.SourceCols = "发票号码" \'指定数据来源列

f.DataTable = DataTables("差异统计") \'指定数据接收表

f.DataCols = "发票号码" \'指定数据接收列

f.ExcludeExistValue = True

f.Fill() \'填充数据



--  作者:czy
--  发布时间:2015/7/21 13:11:00
--  
填充后再计算应该就行了吧
--  作者:czy
--  发布时间:2015/7/21 13:12:00
--  
Dim f As New Filler
f.SourceTable = DataTables("A单位表格") \'指定数据来源
f.SourceCols = "发票号码,产品名称" \'指定数据来源列
f.DataTable = DataTables("差异统计") \'指定数据接收表
f.DataCols = "发票号码,产品名称" \'指定数据接收列
f.ExcludeExistValue = True
f.Fill() \'填充数据
f = New Filler
f.SourceTable = DataTables("B单位表格") \'指定数据来源
f.SourceCols = "发票号码,产品名称" \'指定数据来源列
f.DataTable = DataTables("差异统计") \'指定数据接收表
f.DataCols = "发票号码,产品名称" \'指定数据接收列
f.ExcludeExistValue = True
f.Fill() \'填充数据
For Each dr As DataRow In DataTables("差异统计表").DataRows
    dr("A单位产品数量") = DataTables("A单位表格").Compute("sum(数量)","发票号码 = \'" & dr("发票号码") & "\' and 产品名称 = \'" & dr("产品名称") & "\'")
    dr("B单位产品数量") = DataTables("B单位表格").Compute("sum(数量)","发票号码 = \'" & dr("发票号码") & "\' and 产品名称 = \'" & dr("产品名称") & "\'")
Next

--  作者:jlccrtl
--  发布时间:2015/7/21 13:21:00
--  [求助]关于父表与多个子表引用字符更新问题
那这样两个表  产品名称的非交集 就不显示了吧
比如B表中的D产品

--  作者:czy
--  发布时间:2015/7/21 13:22:00
--  
可以的
--  作者:jlccrtl
--  发布时间:2015/7/21 15:08:00
--  [求助]关于父表与多个子表引用字符更新问题
Dim f As New Filler
f.SourceTable = DataTables("A单位表格") \'指定数据来源
f.SourceCols = "发票号码,产品名称" \'指定数据来源列
f.DataTable = DataTables("差异统计") \'指定数据接收表
f.DataCols = "发票号码,产品名称" \'指定数据接收列
f.ExcludeExistValue = True
f.Fill() \'填充数据
f = New Filler
f.SourceTable = DataTables("B单位表格") \'指定数据来源
f.SourceCols = "发票号码,产品名称" \'指定数据来源列
f.DataTable = DataTables("差异统计") \'指定数据接收表
f.DataCols = "发票号码,产品名称" \'指定数据接收列
f.ExcludeExistValue = True
f.Fill() \'填充数据
For Each dr As DataRow In DataTables("差异统计表").DataRows
    dr("A单位产品数量") = DataTables("A单位表格").Compute("sum(数量)","发票号码 = \'" & dr("发票号码") & "\' and 产品名称 = \'" & dr("产品名称") & "\'")
     dr("B单位产品数量") = DataTables("B单位表格").Compute("sum(数量)","发票号码 = \'" & dr("发票号码") & "\' and 产品名称 = \'" & dr("产品名称") & "\'")
    dr("A单位产品数量") = DataTables("A单位表格").Compute("单价","发票号码 = \'" & dr("发票号码") & "\' and 产品名称 = \'" & dr("产品名称") & "\'")
     dr("B单位产品数量") = DataTables("B单位表格").Compute("单价","发票号码 = \'" & dr("发票号码") & "\' and 产品名称 = \'" & dr("产品名称") & "\'")

Next

如果我还想索引单价等其他的项目 我就这样继续加 就可以是吗???

--  作者:大红袍
--  发布时间:2015/7/21 15:13:00
--  

dr("A单位产品单价") = DataTables("A单位表格").Compute("max(单价)","发票号码 = \'" & dr("发票号码") & "\' and 产品名称 = \'" & dr("产品名称") & "\'")
dr("B单位产品单价") = DataTables("B单位表格").Compute("max(单价)","发票号码 = \'" & dr("发票号码") & "\' and 产品名称 = \'" & dr("产品名称") & "\'")


--  作者:jlccrtl
--  发布时间:2015/7/21 16:18:00
--  [求助]关于父表与多个子表引用字符更新问题
图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看