以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]索引超出范围  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=114992)

--  作者:lgj716330
--  发布时间:2018/2/27 14:11:00
--  [求助]索引超出范围

Dim Filter As String  = "1=1" \'设置筛选条件
With e.Form.Controls("BM")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter  = Filter & " And "
        End If
        Filter  = Filter & "{同期预算}.部门名称 In ( \'" & .Value.replace(",","\',\'") & "\')"
    End If
End With

Dim b  As New SQLCrossTableBuilder("统计表1","同期预算")
 b.AddTable("同期预算","部门名称","责任中心档案","部门名称")
b.AddTable("同期预算","科目名称","费用科目档案","科目名称")
b.HGroups.AddDef("{同期预算}.科目名称")
b.VGroups.AddDef("月份","{0}月") 
b.Totals.AddDef("预算金额")
b.Filter = "{同期预算}.科目名称 not in (\'成本金额\',\'吊牌金额\') and 部门属性 = \'职能部门\' And (" & filter & ")"
b.HorizontalTotal = True

 

b.Build

Tables("预算汇总信息_Table1").DataSource = b.BuildDataSource()

 

其中 BM控件为CheckedComboBox类型,出现以下错误

 

 

 


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/2/27 14:55:16编辑过]

--  作者:lgj716330
--  发布时间:2018/2/27 14:42:00
--  
我用的是窗口table,发现是因为使用窗口table造成的,怎么解决呢
--  作者:有点甜
--  发布时间:2018/2/27 15:26:00
--  

我测试了一下这段代码,没问题

 

Dim b As New SQLCrossTableBuilder("统计表1","订单")
b.AddTable("订单","产品编号","产品","产品编号") \'添加统计表
b.AddTable("订单","客户编号","客户","客户编号") \'添加统计表
b.HGroups.AddDef("日期",DateGroupEnum.Year,"年") \'添加日期列用于垂直分组,按年分组
b.HGroups.AddDef("{订单}.客户编号") \'添加产品列用于垂直分组
b.VGroups.AddDef("客户名称","{0}_数量") \'添加客户列用于水平分组
b.Totals.AddDef("数量") \'添加数量列用于统计
b.HorizontalProportion = True \'生成水平份额
b.filter = "{订单}.客户编号 in (1,3)"
Tables("trtr_table1").DataSource  = b.BuildDataSource

 

请做具体例子发上来测试。


--  作者:lgj716330
--  发布时间:2018/2/27 16:02:00
--  

哦,搞清楚了,b.Build忘记去掉了