以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  交叉统计后窗口临时表的列名  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=104846)

--  作者:HJG_HB950207
--  发布时间:2017/8/6 23:24:00
--  交叉统计后窗口临时表的列名
表A 如下列
      收费员   入站车牌    出站车牌  出口车型  入口车型  

窗口1,建临时表,执行如下代码

Dim g As New CrossTableBuilder("收费员与车型记录", DataTables("表A1"), "[出口车型] <>  [入口车型]")
g.HGroups.AddDef("出站车牌")
g.VGroups.AddDef("收费员")
g.Totals.AddDef("收费员", AggregateEnum.Count, "收费员")
g.HorizontalTotal = True
g.VerticalTotal = True
g.Decimals = 0
g.Filter = "[出口车型] <>  [入口车型]"


执行后临时表,表的各列名均为具体的收费员,而如选中表中某数据,求其对应的列名,用 Tables("窗口1_Table1").Cols(Tables("窗口1_Table1").ColSel).name  显示的列名则为:收费员_*(列号)而非临时表显示的具体收费员姓名。

求教,如何求交叉统计后临时表当前行,数据的对应列名(具体姓名,而不是用收费员_*表示)。谢谢!


--  作者:有点甜
--  发布时间:2017/8/7 9:20:00
--  

用字典先处理,再引用

 

Dim dic As new Dictionary(Of String, String)
For Each c As Col In Tables("统计表").Cols
    dic.Add(c.Caption, c.name)
Next

 

然后这样获取列名

 

Tables("窗口1_Table1").Cols(dic("张三")).Width = 50