以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 关于分组统计的设置于代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=56907)

--  作者:netfox168
--  发布时间:2014/9/15 10:56:00
--  [求助] 关于分组统计的设置于代码
问题1:分组统计的设置如何删除?

问题2:分组统计的代码,能否用关联表?

问题起源:假设当前表是 “父表.子表”,这时统计出来的结果是正确的(仅统计当前记录),假如在窗口控件中用代码生成统计表,则是子表的全部记录。代码如下:

Dim g As New GroupTableBuilder("进仓单分类汇总", DataTables("进仓单明细"))
g.Groups.AddDef("合同号")
g.Groups.AddDef("材料名称")
g.Totals.AddDef("进仓数量")
g.Build()
MainTable = Tables("进仓单分类汇总")

我尝试将第一行后面的代码改成 DataTables(“进仓单.进仓单明细”),但出错。



--  作者:Bin
--  发布时间:2014/9/15 10:59:00
--  
你只需要把G.Filter 条件设置为关联列=父表当前列即可

例如关联列 为  编号

g.Filter ="编号=\'" & tables("父表").current("编号") & "\'"

--  作者:有点甜
--  发布时间:2014/9/15 11:00:00
--  

 1、删除是指什么?直接在菜单那里操作添加或删除

 

 2、无法用关联表,如果是用子表,就这样写代码

 

Dim g As New GroupTableBuilder("进仓单分类汇总", DataTables("进仓单明细"))
g.Groups.AddDef("合同号")
g.Groups.AddDef("材料名称")
g.Totals.AddDef("进仓数量")
g.Filter = Tables("进仓单明细").Filter
g.Build()
MainTable = Tables("进仓单分类汇总")
 
 3、如果是关联表,就这样写代码
 
Dim g As New GroupTableBuilder("进仓单分类汇总", DataTables("进仓单明细"))
g.Groups.AddDef("合同号")
g.Groups.AddDef("材料名称")
g.Totals.AddDef("进仓数量")
g.Filter = "关联列 = \'" & Tables("进仓单").Current("关联列") & "\'"
g.Build()
MainTable = Tables("进仓单分类汇总")

--  作者:netfox168
--  发布时间:2014/9/15 11:11:00
--  
1. 删除是指回到设置前的状态,即是不设置。现在每次按 “重新分组统计” 按钮都生成原先设置的统计表。
2. 过滤设置已ok,谢谢!

--  作者:有点甜
--  发布时间:2014/9/15 11:15:00
--  

 设置前的状态又是指什么?不设置是指把表删除还是怎样?


--  作者:netfox168
--  发布时间:2014/9/15 11:51:00
--  
所谓设置前状态就是按 “重新分组统计” 按钮后出现设置画面,而不是统计结果。
--  作者:有点甜
--  发布时间:2014/9/15 12:00:00
--  

这个意思?

 

Syscmd.Table.BuildGroupTable() 统计
Syscmd.Table.NewGroupTable() 统计
Syscmd.Table.RebuildGroupTable() 复上次统计