以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  CrossTableBuilder临时表列名  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=126160)

--  作者:蓝蚂蚁
--  发布时间:2018/10/15 21:50:00
--  CrossTableBuilder临时表列名

Dim g As New CrossTableBuilder("特定耗材统计临时汇总表", DataTables("特定耗材统计表临时表"))
g.HGroups.AddDef("科室")
g.VGroups.AddDef("通用名称")
g.VGroups.AddDef("规格型号")
g.Totals.AddDef("数量", "数量")
g.Build()

Tables("特定耗材统计表主窗口_Table2").DataSource = g.BuildDataSource()
Tables("特定耗材统计表主窗口_Table2").AutoSizeCols()
Tables("特定耗材统计表主窗口_Table2").Sort = "数量_2 DESC"
DataTables("特定耗材统计表主窗口_Table2").ReplaceFor("数量_1", 0, "数量_1 Is null")
DataTables("特定耗材统计表主窗口_Table2").ReplaceFor("数量_2", 0, "数量_2 Is null")
上面的代码生成的临时表,其列名:数量_1,数量_2,...........可能会有N个(即不确定),那么红色的代码应该如何写,才能保证所有数量列的空值代替为数字“0”?

--  作者:有点蓝
--  发布时间:2018/10/15 22:06:00
--  
Dim g As New CrossTableBuilder("特定耗材统计临时汇总表", DataTables("特定耗材统计表临时表"))
g.HGroups.AddDef("科室")
g.VGroups.AddDef("通用名称")
g.VGroups.AddDef("规格型号")
g.Totals.AddDef("数量", "数量")

Tables("特定耗材统计表主窗口_Table2").DataSource = g.BuildDataSource()
Tables("特定耗材统计表主窗口_Table2").AutoSizeCols()
Tables("特定耗材统计表主窗口_Table2").Sort = "数量_2 DESC"

For Each c As Col In Tables("特定耗材统计表主窗口_Table2").Cols
    If c.Name.StartsWith("数量_")
        DataTables("特定耗材统计表主窗口_Table2").ReplaceFor(c.Name, 0, c.Name & " Is null")
    End If
Next