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


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

主题:交叉统计问题

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


加好友 发短信
等级:四尾狐 帖子:847 积分:5851 威望:0 精华:0 注册:2016/4/15 22:24:00
交叉统计问题  发帖心情 Post By:2023/1/31 17:36:00 [只看该作者]

请教老师,如何将表A数据,生成“统计表”样式,请教老师代码如何修改?
Dim b As New CrossTableBuilder("统计表1", DataTables("表A"))
b.HGroups.AddDef("姓名") '添加客户列用于水平分组
b.VGroups.AddDef("型号") '添加产品列用于垂直分组
b.Totals.AddDef("数量") '添加数量列用于统计
b.OrderByTotal = True '同种类型的统计数据排列在一起
b.Build '生成统计表
Maintable = Tables("统计表1") '打开生成的统计表
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目6.foxdb

[此贴子已经被作者于2023/1/31 17:36:45编辑过]

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


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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目6.zip


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


加好友 发短信
等级:四尾狐 帖子:847 积分:5851 威望:0 精华:0 注册:2016/4/15 22:24:00
临时表汇总  发帖心情 Post By:2023/2/1 10:18:00 [只看该作者]

谢谢老师,因型号内容多少不确定,因此想采用临时表进行汇总,统计型号根据内容多少自动延伸,请老师看看一下代码:
Dim dtb As New DataTableBuilder("临时表1")
dtb.AddDef("姓名", GetType(String), 16)
dtb.AddDef("型号", GetType(String), 16)
dtb.AddDef("数量", GetType(Integer))
'dtb.AddDef("金额", GetType(Double))
dtb.Build()
'For Each nm() As String In DataTables("表A").GetValues("姓名|型号")
 '   Dim dr As DataRow = DataTables("临时表1").AddNew()

Dim r As Row
For Each s As String In DataTables("表A").GetValues("姓名")
    r = Tables("临时表1").AddNew
    r("姓名") = s
    For Each dr As DataRow In DataTables("表A").Select("姓名='" & s & "'")
        If dr.IsNull("型号") = False Then
            Dim xh As String = dr("型号").SubString(1).trim("0")
            r("型号" & xh & "_型号") = dr("型号")
            r("型号" & xh & "_数量") = dr("数量")
        End If 
    Next 
Next
[此贴子已经被作者于2023/2/1 10:19:50编辑过]

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


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

Dim dtb As New DataTableBuilder("临时表1")
dtb.AddDef("姓名", GetType(String), 16)
For Each nm As String In DataTables("表A").GetValues("型号")
Dim xh As String = nm.SubString(1).trim("0")
dtb.AddDef("型号" & xh & "_型号", GetType(String), 16)
dtb.AddDef("型号" & xh & "_数量", GetType(String), 16)
next
dtb.Build()

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


加好友 发短信
等级:四尾狐 帖子:847 积分:5851 威望:0 精华:0 注册:2016/4/15 22:24:00
老师,出现这个错误提醒  发帖心情 Post By:2023/2/1 10:49:00 [只看该作者]

.NET Framework 版本:4.0.30319.17929
Foxtable 版本:2022.8.18.1
错误所在事件:窗口,窗口1,Button5,Click
详细错误信息:
名为“型号1_型号”的列已属于此 DataTable。


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


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

表格数据是怎么样的?

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


加好友 发短信
等级:四尾狐 帖子:847 积分:5851 威望:0 精华:0 注册:2016/4/15 22:24:00
实例上传  发帖心情 Post By:2023/2/1 11:19:00 [只看该作者]

请老师看看自动生成
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目62.foxdb

临时表的代码

希望临时表生成的效果,要与2楼统计表那样
[此贴子已经被作者于2023/2/1 11:28:41编辑过]

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


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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目62.zip


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


加好友 发短信
等级:四尾狐 帖子:847 积分:5851 威望:0 精华:0 注册:2016/4/15 22:24:00
已解决  发帖心情 Post By:2023/2/1 12:15:00 [只看该作者]

完全正确,非常感谢蓝老师

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


加好友 发短信
等级:四尾狐 帖子:847 积分:5851 威望:0 精华:0 注册:2016/4/15 22:24:00
新问题  发帖心情 Post By:2023/2/1 15:13:00 [只看该作者]

老师,仔细测试还是发现一些问题,我换一个实例来说,比如横向标题为检查次数(检查日期和检查结果),检查次数为检查最多的单位检查的次数,比如5次,分别为检查次数1、检查次数2、检查次数3、检查次数4、检查次数5

纵向单位列表,要求按照升序或降序,分别从检查次数1开始依次填充,老师这个代码怎么重新进行调试?同时汇总表希望将相同的系统放在一起
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:交叉统计项目1.foxdb


 回到顶部
总数 27 1 2 3 下一页