以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  查询表列次序的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=178110)

--  作者:18920118515
--  发布时间:2022/6/18 11:15:00
--  查询表列次序的问题
Dim d As Date = e.Form.Controls("DateTimePicker1").value
    Dim b As New CrossTableBuilder("统计表1",DataTables("录入保险明细"))
    b.Filter ="[签单日期] = #" & d & "#"
    b.HGroups.AddDef("承保公司") \'添加客户列用于水平分组
    b.HGroups.AddDef("投保性质") \'添加客户列用于水平分组
    b.VGroups.AddDef("险种名称") \'添加产品列用于垂直分组
    b.Totals.AddDef("数量") \'添加数量列用于统计
    b.Totals.AddDef("保费金额") \'添加数量列用于统计
    b.Totals.AddDef("保险利润") \'添加数量列用于统计
    b.VerticalTotal= True \'垂直汇总
    b.HorizontalTotal = True \'水平汇总
    b.Decimals = 2
    Tables("查询预览窗口_Table1").DataSource = b.builddatasource
    For Each dc As DataCol In DataTables("查询预览窗口_Table1").datacols
        If dc.caption Like "*保*" Then
            dc.SetFormat("#,###.00")
        End If
    Next
    Tables("查询预览窗口_Table1").AutoSizeCols() \'自动设置所有列的宽度


请问老师:以上代码的列为“险种名称”,例如:列名称分别为“交强险,商业险,驾意险,人员险”,但是由于每次查询的时间周期不同,因此,险种也不同,例如查询1月份数据,险种只有“交强险,商业险”,查询2月份数据,险种只有“交强险,驾意险”,如此,我想对列次序进行统一,按照1-交强险,2-商业险,3-驾意险,4-人员险的次序,进行陈列,代码该如何写,您受累给指导下


--  作者:有点蓝
--  发布时间:2022/6/18 11:47:00
--  
dim lst as new list(of col)
for i as integer = Tables("查询预览窗口_Table1").cols.count - 1 to 2 step -1
if Tables("查询预览窗口_Table1").cols(i).name like "险种名称_*"
lst.add(Tables("查询预览窗口_Table1").cols(i))
end if
next

for each c as col in lst
select case c.caption
case "交强险"
c.move(2)
case "商业险"
c.move(3)
case "驾意险"
c.move(4)
case "人员险"
c.move(5)
next

--  作者:18920118515
--  发布时间:2022/6/18 18:48:00
--  
谢谢老师