Foxtable(狐表)用户栏目专家坐堂 → 组合统计连接列问题


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

主题:组合统计连接列问题

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


加好友 发短信
等级:婴狐 帖子:87 积分:646 威望:0 精华:0 注册:2017/3/5 20:07:00
组合统计连接列问题  发帖心情 Post By:2017/6/5 11:40:00 [显示全部帖子]

表一和表二和表三 都有货品编号, 用货品编号来作连接列 但是统计表里我想再增加几列 问题是表二和表三没有相同的列.实际上这些列表一有,要怎样弄?

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


加好友 发短信
等级:婴狐 帖子:87 积分:646 威望:0 精华:0 注册:2017/3/5 20:07:00
  发帖心情 Post By:2017/6/5 17:47:00 [显示全部帖子]

我尝试了查询表,反应速度有点慢,另外我想请教,我有一张出入明细表,里面记录了出库,入库,移出,移入等操作类型,用查询表可以多表查询,但怎样在统计列并排显示不同的统计数据,就比如 [(编号) (商品名称) (商品规格) (出库数) (入库数)]
图片点击可在新窗口打开查看此主题相关图片如下:@n30@_a8`0_$f_gzlift{8.jpg
图片点击可在新窗口打开查看

想要这种效果:


图片点击可在新窗口打开查看此主题相关图片如下:tc3a3z`~xu(j3e4dwxx1n0w.png
图片点击可在新窗口打开查看
按钮代码是:

Dim   bd1 As  New   GroupTableBuilder("统计表1",DataTables("商品库存"))
Dim  dt1 As   fxDataSource
 bd1.Groups.AddDef("Item")  '根据型号分组
bd1.Groups.AddDef("EnglishDescription")  '根据型号分组
bd1.Groups.AddDef("ChineseDescription")  '根据型号分组
bd1.Groups.AddDef("EnglishBrand")  '根据型号分组
bd1.Groups.AddDef("ChineseBrand")  '根据型号分组
bd1.Groups.AddDef("ItemCategory")  '根据型号分组
'bd1.Totals.AddDef("数量","进货_数量")  '对数量进行统计
'bd1.Totals.AddDef("金额","进货_金额")  '对金额进行统计
dt1 =   bd1.BuildDataSource()
Dim  bd2 As  New   GroupTableBuilder("统计表2",DataTables("出入记录"))
bd2.Filter = "[作业时间] >= # " & lbl3.value & "# and [作业时间] <= # " & lbl4.value & " #  and 操作类型 = '入库'"
Dim  dt2  As   fxDataSource
 bd2.Groups.AddDef("货品编号")  '根据型号分组
'bd2.Groups.AddDef("英文描述")
'bd2.Groups.AddDef("中文描述")
'bd2.Groups.AddDef("英文名称")
'bd2.Groups.AddDef("中文名称")
'bd2.Groups.AddDef("商品类型")
bd2.Totals.AddDef("数量","入库_数量")  '对数量进行统计
'bd2.Totals.AddDef("金额","销售_金额")  '对金额进行统计
dt2 =   bd2.BuildDataSource()
Dim  bd3 As  New   GroupTableBuilder("统计表3",DataTables("出入记录"))
bd3.Filter = "[作业时间] >= # " & lbl3.value & "# and [作业时间] <= # " & lbl4.value & " #  and 操作类型 = '出库'"
Dim  dt3  As   fxDataSource
 bd3.Groups.AddDef("货品编号")  '根据型号分组
'bd3.Groups.AddDef("英文描述")
'bd3.Groups.AddDef("中文描述")
'bd3.Groups.AddDef("英文名称")
'bd3.Groups.AddDef("中文名称")
'bd3.Groups.AddDef("商品类型")
bd3.Totals.AddDef("数量","出库_数量")  '对数量进行统计
'bd2.Totals.AddDef("金额","销售_金额")  '对金额进行统计
dt3 =   bd3.BuildDataSource()
'Dim  nms As String() = {"Item","EnglishDescription","ChineseDescription","EnglishBrand","ChineseBrand","ItemCategory"}
'Dim  nmn As String() = {"货品编号","英文描述","中文描述","英文名称","中文名称","商品类型"}
'Dim  mnm As String() = {"货品编号","英文描述","中文描述","英文名称","中文名称","商品类型"}
dt1.Combine("Item",dt2,"货品编号")  '将销售统计数据组合到进货统计数据
dt1.Combine("Item",dt3,"货品编号")  '将退货统计数据组合到进货统计数据

Tables("报表统计_Table1").DataSource =   dt1  '将统计结果绑定到Table

 


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


加好友 发短信
等级:婴狐 帖子:87 积分:646 威望:0 精华:0 注册:2017/3/5 20:07:00
  发帖心情 Post By:2017/6/7 15:36:00 [显示全部帖子]

再请教个问题 统计表的数值怎样前面加"-"号又不影响计算


图片点击可在新窗口打开查看此主题相关图片如下:3eabl3k2w$8m)c6f}$w_h2.png
图片点击可在新窗口打开查看
图中移出的想显示为"-加数值"

这是生成的代码:

Dim lbl3,lbl4 As WinForm.DateTimePicker
lbl3 = e.Form.Controls("DateTimePicker3")
lbl4 = e.Form.Controls("DateTimePicker4")
Dim g As New GroupTableBuilder("库位调整", DataTables("出入记录"))
g.Groups.AddDef("作业时间", DateGroupEnum.None)
g.Groups.AddDef("货品编号")
g.Groups.AddDef("中文描述")
g.Groups.AddDef("批号")
g.Groups.AddDef("状态")
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("重量", AggregateEnum.Count)
g.Filter = "[操作类型] = '移出' or [操作类型] = '移入'and [作业时间] >= # " & lbl3.value & "# and [作业时间] <= # " & lbl4.value & " # "
g.Build()
Tables("报表统计_Table1").DataSource = g.BuildDataSource()


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


加好友 发短信
等级:婴狐 帖子:87 积分:646 威望:0 精华:0 注册:2017/3/5 20:07:00
  发帖心情 Post By:2017/6/7 15:57:00 [显示全部帖子]

这脑瓜子转不过来.还真是......

一看,恍然大悟!原来就这么简单!


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


加好友 发短信
等级:婴狐 帖子:87 积分:646 威望:0 精华:0 注册:2017/3/5 20:07:00
  发帖心情 Post By:2017/6/7 16:34:00 [显示全部帖子]

还有一个问题是 我在数据库设定了自动备份,在每天晚上的12点执行,在报表中有两个报表分别是取得月初的库存明细和月末的库存明细,那么我是否只能在备份数据中去找(比如5月1日当天的库存明细和5月31日的库存明细),因为我的备份是压缩的格式,那么就算是使用备份数据也要经过处理才能读取,有没有怎么方式能在每天十二点时自动记录下前一分钟的库存,(我们没有夜班,在这个时间段没有客户端在线)


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


加好友 发短信
等级:婴狐 帖子:87 积分:646 威望:0 精华:0 注册:2017/3/5 20:07:00
  发帖心情 Post By:2017/6/7 16:56:00 [显示全部帖子]

这样是不是需要最起码有一个PC端是在运行在0点时

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


加好友 发短信
等级:婴狐 帖子:87 积分:646 威望:0 精华:0 注册:2017/3/5 20:07:00
  发帖心情 Post By:2017/7/14 10:09:00 [显示全部帖子]

组合统计,涉及到两张表,用货品编号连接,一张表A货品编号少,另一张表B货品编号多,怎样让统计表只统计完表A的货品编号,但又能从表B取得数据

这样写代码,在统计表里包含了所有货品编号,是不需要的的。

Dim lbl3,lbl4 As WinForm.DateTimePicker
lbl3 = e.Form.Controls("DateTimePicker3")
lbl4 = e.Form.Controls("DateTimePicker4")
e.Form.Controls("打印预览").Enabled = False
e.Form.Controls("直接打印").Enabled = False
Dim g As New GroupTableBuilder("在库日报-截止", DataTables("备份商品库存明细"))
Dim  dt1  As   fxDataSource
g.Groups.AddDef("货品编号")
g.Groups.AddDef("货品名称")
g.Groups.AddDef("批次")
g.Groups.AddDef("货格")
g.Groups.AddDef("箱含量")
g.Groups.AddDef("实时库存")
g.Groups.AddDef("类型")
g.Filter = "[实时库存] <> 0 and [备份时间] >= # " & lbl3.value & "# and [备份时间] <= # " & lbl4.value & " # "
dt1 = g.BuildDataSource()
Dim  bd2 As  New   GroupTableBuilder("统计表2",DataTables("商品尺寸体积"))
bd2.Filter = "[QuantityUm] = 'PCS '"
Dim  dt2  As   fxDataSource
 bd2.Groups.AddDef("Item")  '根据型号分组
bd2.groups.AddDef("CBM","体积")  '对数量进行统计
bd2.groups.AddDef("Weight","重量")
dt2 = bd2.BuildDataSource()
dt1.Combine("货品编号",dt2,"Item")  '将销售统计数据组合到进货统计数据
e.Form.Controls("提示").text = "在库日报-截止"
Tables("报表统计_Table1").DataSource = dt1
For Each r As Row In Tables("报表统计_Table1").Rows
    If r("体积") = 0 Or r.isnull("体积") = True Then
        If r("箱含量") = 6 Then
           r("体积") = 0.0117
    ElseIf r("箱含量") = 12 Then        
           r("体积") = 0.0256  
    End If
End If
If r("重量") = 0 Or r.isnull("重量") = True Then
r("重量") = 1.33
End If
Next


 回到顶部