Foxtable(狐表)用户栏目专家坐堂 → 分组汇总时能否除显示分组列和汇总列外,也能同时显示其他不分组的列


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

主题:分组汇总时能否除显示分组列和汇总列外,也能同时显示其他不分组的列

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


加好友 发短信
等级:婴狐 帖子:12 积分:171 威望:0 精华:0 注册:2021/5/19 13:29:00
分组汇总时能否除显示分组列和汇总列外,也能同时显示其他不分组的列  发帖心情 Post By:2021/6/27 14:08:00 [只看该作者]

我要对下面这个物耗总表进行分组汇总,分组列是代号和规格(用代号和规格两项才能确定这个物料),要汇总的列为最后面的“小合计”,见下图


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

我设置的分组汇总设置如下图:


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

生成的汇总表只有三列,代号、规格和 总合计


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


我的问题是,只显示三列太少了,想再多显示几列,如名称、工序、类别、备注等,但这些列是不参与分组汇总的。如果设置不能解决,是不是有其他代码可以?

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


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

分组后添加一些临时列,比如:

Dim b As New GroupTableBuilder("统计表1",DataTables("物耗总表"))
b.Groups.AddDef(
"代号"
b.
Groups.AddDef("规格"
b.Totals.AddDef("小合计")
b.Build 
'生成统计表
dataTables("统计表1").DataCols.Add("名称", GetType(string), 16)
dim dr as datarow
for each r as row in Tables("统计表1").rows
dr = ataTables("物耗总表").find("代号='" & r("代号") & "' and 规格='" & r("规格") & "'")
r("名称") = dr("名称")
next

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


加好友 发短信
等级:婴狐 帖子:12 积分:171 威望:0 精华:0 注册:2021/5/19 13:29:00
  发帖心情 Post By:2021/6/30 11:23:00 [只看该作者]

感谢大佬!非常感谢!!

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


加好友 发短信
等级:婴狐 帖子:12 积分:171 威望:0 精华:0 注册:2021/5/19 13:29:00
  发帖心情 Post By:2021/6/30 11:49:00 [只看该作者]

还是没调出来

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:技术物耗表模拟.table


用的这些代码

Dim g As New GroupTableBuilder("汇总物耗表", DataTables("物耗总表"))
g.Groups.AddDef("代号")
g.Groups.AddDef("规格")
g.Totals.AddDef("小合计", "总合计")
g.Build()   '生成统计表

DataTables("汇总物耗表").DataCols.Add("名称", Gettype(String), 16)
Dim dr As DataRow
For Each r As Row In Tables("汇总物耗表").rows
dr = DataTables("物耗总表").find("代号='" & r("代号") & " ' and 规格='" & r("规格") & " '")
r("名称") = dr("名称")
Next

MainTable = Tables("汇总物耗表")

只是第一行显示 出来了,并且代码也报错了


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


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

那是因为数据规格有空值,或者空字符串,数据不一致导致的问题

DataTables("汇总物耗表").DataCols.Add("名称", Gettype(String), 16)
Dim dr As DataRow
For Each r As Row In Tables("汇总物耗表").rows
    If r.IsNull("规格") OrElse r("规格") = ""
        dr = DataTables("物耗总表").find("代号='" & r("代号") & "' and (规格 is null or 规格='')")
    Else
        dr = DataTables("物耗总表").find("代号='" & r("代号") & "' and 规格='" & r("规格") & "'")
    End If
    If dr IsNot Nothing Then
        r("名称") = dr("名称")
    End If
Next

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


加好友 发短信
等级:婴狐 帖子:12 积分:171 威望:0 精华:0 注册:2021/5/19 13:29:00
  发帖心情 Post By:2021/6/30 12:07:00 [只看该作者]

成功了,非常感谢,确实是空行的问题,不好意思,不太懂,谢谢!非常完美!

 回到顶部