以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于组合统计表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=159309)

--  作者:hnguang
--  发布时间:2020/12/22 8:45:00
--  关于组合统计表

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

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

如图我统计了两个表,一个是生产日报表,一个是入库报表,两个统计表组合起来,形成了如图一的组合统计表,但是生产日报表没有的,也会组合进能,能否在统计入库报表的时候只按我生产日报表的内容来统计

--  作者:hnguang
--  发布时间:2020/12/22 8:46:00
--  

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

--  作者:有点蓝
--  发布时间:2020/12/22 9:00:00
--  
具体代码?
--  作者:hnguang
--  发布时间:2020/12/22 9:07:00
--  
Dim filter=""
filter="日期>=\'"& e.Form.Controls("DateTimePicker1").text &"\'  And 日期<=\'"& e.Form.Controls("DateTimePicker2").text &"\'  AND 生產單位 in (\'" & e.Form.Controls("CheckedComboBox1").Text.Replace(",", "\',\'") & "\')"
DataTables("P生產日報").loadfilter=filter
DataTables("P生產日報").load
Dim g As New GroupTableBuilder("統計表5", DataTables("P生產日報"))
Dim dt2  As fxDataSource
g.Groups.AddDef("生產單位")
g.Groups.AddDef("指令單號")
g.Groups.AddDef("產品編號")
g.Groups.AddDef("指令數量")
g.Groups.AddDef("標准工時")
g.Groups.AddDef("總工時")
g.Totals.AddDef("生產數量")
g.Totals.AddDef("不良數量")
g.Totals.AddDef("實際工時")
g.Build()
dt2 = g.BuildDataSource()
Dim a="p入庫單子檔"
Dim a1="P生產日報"
Dim b As New SQLGroupTableBuilder("統計表3",a)
Dim dt3  As fxDataSource
b.ConnectionName =_conn
b.Filter="旗標=1"
b.Groups.AddDef("來源") \'根据製令單號分组
b.Groups.AddDef("入庫母件") \'根据製令單號分组
b.Totals.AddDef("良品入庫數量") \'对数量进行统计
b.Build \'生成统计表
dt3 = b.BuildDataSource()

Dim nms As String() = {"指令單號","產品編號"} \'指定连接列
Dim nms1 As String() = {"來源","入庫母件"} \'指定连接列
dt2.Combine(nms,dt3,nms1)

--  作者:有点蓝
--  发布时间:2020/12/22 9:22:00
--  
方法1、试试

b.Filter="旗標=1 and exists (select 指令單號 from P生產日報 as a where  a.指令單號=p入庫單子檔.來源 and a.產品編號=p入庫單子檔. 入庫母件)"

2、生成统计表后移除掉,比如
dt2.Combine(nms,dt3,nms1)
dt2.show(“統計表5”)
datatables("統計表5").removefor("生產單位 is null")

--  作者:hnguang
--  发布时间:2020/12/22 9:31:00
--  
第二个方法正是我用的方法,主要是想提高一点速度,不想统计全表
--  作者:有点蓝
--  发布时间:2020/12/22 9:33:00
--  
如果方法1不行,那就直接使用sql统计咯