以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 统计问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186464) |
-- 作者:lin98 -- 发布时间:2023/5/5 14:57:00 -- 统计问题 Dim Filter As String With e.Form.Controls("StartDate") If .Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "送货日期 >= #" & .Value & "#" End If End With With e.Form.Controls("EndDate") If .Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "送货日期 <= #" & .Value & "#" End If End With With e.Form.Controls("C1") If .Value IsNot Nothing Then If Filter > "" Then Filter = Filter & " And " End If Filter = Filter & "客户 = \'" & .Value & "\'" End If End With With e.Form.Controls("C2") If .Value IsNot Nothing Then If Filter > "" Then Filter = Filter & " And " End If Filter = Filter & "品名 = \'" & .Value & "\'" End If End With With e.Form.Controls("C3") If .Value IsNot Nothing Then If Filter > "" Then Filter = Filter & " And " End If Filter = Filter & "规格 = \'" & .Value & "\'" End If End With Dim b As New GroupTableBuilder("统计表1", DataTables("订单明细")) \' b.Groups.AddDef("客户") \' b.Groups.AddDef("品名") b.Groups.AddDef("规格") b.Totals.AddDef("数量","订购数量") \' b.Totals.AddDef("金额","订购金额") \' b.Filter = Filter Tables("订单统计窗口_Table1").DataSource = b.BuildDataSource() 以上代码,是客户、品名、规格、时间的分组进行统计,如果分成多个分组统计如下面几种,就是分多的按键来实现。 如何实现一个按键多种分组统计? 1.分组一,以客户和品名进行统计,以复重的客户名称合并后进行显示 Dim b As New GroupTableBuilder("统计表1", DataTables("订单明细")) \' b.Groups.AddDef("客户") \' b.Groups.AddDef("品名") b.Totals.AddDef("数量","订购数量") \' b.Totals.AddDef("金额","订购金额") \' b.Filter = Filter Tables("订单统计窗口_Table1").DataSource = b.BuildDataSource() 2.分组二,以客户和规格进行统计,以复重的客户名称合并后进行显示 Dim b As New GroupTableBuilder("统计表1", DataTables("订单明细")) \' b.Groups.AddDef("客户") \' b.Groups.AddDef("规格") b.Totals.AddDef("数量","订购数量") \' b.Totals.AddDef("金额","订购金额") \' b.Filter = Filter Tables("订单统计窗口_Table1").DataSource = b.BuildDataSource() 3.分组三,以客户、品名、规格进行统计,以复重的客户名称和品名合并后进行显示 Dim b As New GroupTableBuilder("统计表1", DataTables("订单明细")) \' b.Groups.AddDef("客户") \' b.Groups.AddDef("品名") b.Groups.AddDef("规格") b.Totals.AddDef("数量","订购数量") \' b.Totals.AddDef("金额","订购金额") \' b.Filter = Filter Tables("订单统计窗口_Table1").DataSource = b.BuildDataSource() 4.分组4,规格进行统计 Dim b As New GroupTableBuilder("统计表1", DataTables("订单明细")) \' b.Groups.AddDef("规格") b.Totals.AddDef("数量","订购数量") \' b.Totals.AddDef("金额","订购金额") \' b.Filter = Filter Tables("订单统计窗口_Table1").DataSource = b.BuildDataSource()
[此贴子已经被作者于2023/5/5 14:58:55编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/5/5 15:01:00 -- 如果是指把这几个统计结果直接合并到一起,没有办法 |
-- 作者:lin98 -- 发布时间:2023/5/5 15:15:00 -- 不是几种结果直接合并在一起,是按几种条件,多种条件有一种满足,按满足条件进行计算 比如 分组1.就是如果送货日期、客户、品名不为空,规格为空,按送货日期、客户、品名分组进行统计,如果重复客户、品名以合并显示。分组2、3、4类似 如何实现?
|
-- 作者:有点蓝 -- 发布时间:2023/5/5 15:25:00 -- 这个和条件没有关系,和分组有关,同样的分组才能合并到一起 |
-- 作者:lin98 -- 发布时间:2023/5/5 16:45:00 -- 1楼是有4种分组,一般要分4按键来区分,这分组不灵活,如果20种分组,要做20个按键,想如何实现在一个按键可以多种分组,比有20种分组,执行时,按用户的内容分组统计,出就满足组合统计 |
-- 作者:lin98 -- 发布时间:2023/5/5 16:53:00 -- 如上图统计是比较不灵活,按键也太多,如何实现按键窗口上的组合框录入的内容进行分组统计? 比如下情况 1.当用户录入,日期、客户的内容,就按此进行分组统计,显示; 2.当用户录入,日期、客户、产品的内容,就按此进行分组统计,显示; 3.当用户录入,日期、客户、规格的内容,就按此进行分组统计,显示; 4.当用户录入,日期、规格的内容,就按此进行分组统计,显示; 5.当用户录入,日期、客户、产品、规格的内容,就按此进行分组统计,显示;、、、、、、
|
-- 作者:有点蓝 -- 发布时间:2023/5/5 16:55:00 -- 把分组做成可选的,根据选择的分组,动态设置,比如:http://www.foxtable.com/webhelp/topics/0940.htm Dim b As New GroupTableBuilder("统计表1", DataTables("订单明细")) \' for each s as string in e.Form.Controls("CheckedComboBox1").text.split(",") b.Groups.AddDef(s) endif |
-- 作者:lin98 -- 发布时间:2023/5/6 11:09:00 -- 无法实现 [此贴子已经被作者于2023/5/6 12:05:46编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/5/6 11:24:00 -- 错误和分组没有关系,没有金额这个列 |