以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  交叉统计问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=185032)

--  作者:jhxb8821
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2023/1/31 21:49:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目6.zip


--  作者:jhxb8821
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间: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
--  发布时间:2023/2/1 10:49:00
--  老师,出现这个错误提醒
.NET Framework 版本:4.0.30319.17929
Foxtable 版本:2022.8.18.1
错误所在事件:窗口,窗口1,Button5,Click
详细错误信息:
名为“型号1_型号”的列已属于此 DataTable。


--  作者:有点蓝
--  发布时间:2023/2/1 10:58:00
--  
表格数据是怎么样的?
--  作者:jhxb8821
--  发布时间:2023/2/1 11:19:00
--  实例上传
请老师看看自动生成
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目62.foxdb

临时表的代码

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

--  作者:有点蓝
--  发布时间:2023/2/1 11:30:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目62.zip


--  作者:jhxb8821
--  发布时间:2023/2/1 12:15:00
--  已解决
完全正确,非常感谢蓝老师
--  作者:jhxb8821
--  发布时间:2023/2/1 15:13:00
--  新问题

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

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