Foxtable(狐表)用户栏目专家坐堂 → 统计问题


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

主题:统计问题

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


加好友 发短信
等级:五尾狐 帖子:1096 积分:7235 威望:0 精华:0 注册:2020/11/4 22:15:00
统计问题  发帖心情 Post By: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编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107146 积分:544973 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/5 15:01:00 [只看该作者]

如果是指把这几个统计结果直接合并到一起,没有办法

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


加好友 发短信
等级:五尾狐 帖子:1096 积分:7235 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/5/5 15:15:00 [只看该作者]

不是几种结果直接合并在一起,是按几种条件,多种条件有一种满足,按满足条件进行计算

比如
分组1.就是如果送货日期、客户、品名不为空,规格为空,按送货日期、客户、品名分组进行统计,如果重复客户、品名以合并显示。分组2、3、4类似

如何实现?

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107146 积分:544973 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/5 15:25:00 [只看该作者]

这个和条件没有关系,和分组有关,同样的分组才能合并到一起

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


加好友 发短信
等级:五尾狐 帖子:1096 积分:7235 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/5/5 16:45:00 [只看该作者]

1楼是有4种分组,一般要分4按键来区分,这分组不灵活,如果20种分组,要做20个按键,想如何实现在一个按键可以多种分组,比有20种分组,执行时,按用户的内容分组统计,出就满足组合统计

图片点击可在新窗口打开查看此主题相关图片如下:分组统计.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:五尾狐 帖子:1096 积分:7235 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/5/5 16:53:00 [只看该作者]

如上图统计是比较不灵活,按键也太多,如何实现按键窗口上的组合框录入的内容进行分组统计?

比如下情况
1.当用户录入,日期、客户的内容,就按此进行分组统计,显示;
2.当用户录入,日期、客户、产品的内容,就按此进行分组统计,显示
3.用户录入,日期、客户、规格的内容,就按此进行分组统计,显示
4.用户录入,日期、规格的内容,就按此进行分组统计,显示
5.用户录入,日期、客户、产品、规格的内容,就按此进行分组统计,显示;、、、、、、

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107146 积分:544973 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1096 积分:7235 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/5/6 11:09:00 [只看该作者]

无法实现


[此贴子已经被作者于2023/5/6 12:05:46编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107146 积分:544973 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/6 11:24:00 [只看该作者]

错误和分组没有关系,没有金额这个列

 回到顶部