以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  交接数据流的数据统计  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=135334)

--  作者:不再回首
--  发布时间:2019/5/23 19:47:00
--  交接数据流的数据统计

图片点击可在新窗口打开查看此主题相关图片如下:示意图.png
图片点击可在新窗口打开查看
请问各位老师:我有一个数据交接的统计问
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:交接示意表.xlsx

题,就是不同工序之间的数据交接,怎么样根据交接的顺序实现直观的数据统计
--  作者:不再回首
--  发布时间:2019/5/24 8:19:00
--  
求大神们指点
--  作者:有点甜
--  发布时间:2019/5/24 9:11:00
--  

交叉统计,如

 

http://www.foxtable.com/webhelp/scr/0165.htm

 


--  作者:不再回首
--  发布时间:2019/5/24 9:41:00
--  
有点甜老师:您好!
     我知道交叉查询的使用方法,但这个是带流向的,不是简单的交叉查询能做得到的,因为一个交接表里面有很多产品,车间,工序间的交接,从头到尾相互交接,我想要的是统计某一个产品,从头到尾的数据统计,但交叉查询我做不出来,还请您指导,谢谢!


--  作者:有点甜
--  发布时间:2019/5/24 11:31:00
--  

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("产品名称", Gettype(String), 16)
Dim ls As new List(of String)

For Each dr As DataRow In DataTables("abc").Select("日期 is not null", "日期,_Identify")
    Dim lm = dr("输出方") & "_" & dr("工序")
    If ls.contains(lm) = False Then
        dtb.AddDef(lm, Gettype(Double))
        ls.add(lm)
    End If
Next
dtb.Build()
For Each cus As String In DataTables("abc").GetValues("产品名称", "产品名称 is not null")
    Dim dr As DataRow = DataTables("统计").AddNew()
    dr("产品名称") = cus
    For Each s As String In ls
        Dim prd = s.split("_")
        dr(prd(0) & "_" & prd(1)) = DataTables("abc").Compute("Sum(输出量)","产品名称 = \'" & cus & "\' And 输出方 = \'" & prd(0) & "\'")
    Next
Next
MainTable= Tables("统计")


--  作者:不再回首
--  发布时间:2019/5/24 17:51:00
--  
谢谢老师,当数据量少时没问题,但当交接的数据量,产品名,工序多时会有一些问题,我再研究一下您的代码,谢谢了!
--  作者:有点甜
--  发布时间:2019/5/24 19:16:00
--  
以下是引用不再回首在2019/5/24 17:51:00的发言:
谢谢老师,当数据量少时没问题,但当交接的数据量,产品名,工序多时会有一些问题,我再研究一下您的代码,谢谢了!

 

做一个对应的出错的实例发上来测试。