以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于GroupTableBuilder的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=170541)

--  作者:ap9709130
--  发布时间:2021/7/29 21:24:00
--  关于GroupTableBuilder的问题
老师

     我今天在做分组统计时,发现在一个很有趣的问题。代码如下:

Dim b As New GroupTableBuilder("统计表1",tbl)
b.Groups.AddDef("发票号码") \'添加客户列用于分组
b.Groups.AddDef("税率") \'添加产品列用于分组
b.Groups.AddDef("开票名称") \'添加产品列用于分组
b.Groups.AddDef("规格型号") \'添加产品列用于分组
b.Groups.AddDef("开票价格") \'添加产品列用于分组
b.Groups.AddDef("物料编码") \'添加产品列用于分组
b.Totals.AddDef("开票数量") \'添加数量列用于统计
\'b.Totals.AddDef("开票金额") \'添加金额列用于统计
Tables(e.Form.name & "_tjxmxb").DataSource = b.Build() \'生成统计表
Tables(e.Form.name & "_tjxmxb").DataTable.DataCols.Add("开票金额", Gettype(Double))
For Each r As DataRow In Tables(e.Form.name & "_tjxmxb").DataTable.dataRows
    r("开票金额") = Round2(r("开票数量")*r("开票价格"),2)
Next

这段代码运行是没有问题的。但是如果我不想显示这个表,把build的显示参数设成True.  Tables(e.Form.name & "_tjxmxb").DataSource = b.Build(True) 就会报错,说不存在开票金额的列。
我用output 把Tables(e.Form.name & "_tjxmxb")列全部弄出来,明明又有这个列。为什么会这样?

[此贴子已经被作者于2021/7/29 21:24:30编辑过]

--  作者:有点蓝
--  发布时间:2021/7/29 21:41:00
--  
Tables(e.Form.name & "_tjxmxb").DataSource = b.BuildDataSource()
[此贴子已经被作者于2021/7/29 21:41:22编辑过]