以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  设置了汇总,但是筛选后常出现错误如何解决  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=120400)

--  作者:samlzc
--  发布时间:2018/6/14 11:55:00
--  设置了汇总,但是筛选后常出现错误如何解决
.NET Framework 版本:2.0.50727.5456
Foxtable 版本:2018.3.9.1
错误所在事件:cbb,AfterSelRangeChange
详细错误信息:
索引超出范围。必须为非负值并小于集合大小。
参数名: index



对应AfterSelRangeChange的代码
If MainTable.name = "cbb" Then
With e.NewRange
Dim t As Integer =   .TopRow
Dim b As Integer = .BottomRow
If t >= 0 And b >= 0 Then
Dim p1 As Integer = Tables("cbb").Cols("含税销售额").Index \'获得数量列的位置
Dim p2 As Integer = Tables("cbb").Cols("成本金额").Index \'获得数量列的位置
Dim p3 As Integer = Tables("cbb").Cols("利润").Index \'获得数量列的位置
Dim v1 As Double 
v1 = Tables("cbb").Aggregate(AggregateEnum.Sum, .TopRow, p1, .BottomRow, p1)

Dim v2 As Double 
v2 = Tables("cbb").Aggregate(AggregateEnum.Sum, .TopRow, p2, .BottomRow, p2)

Dim v3 As Double 
v3 = Tables("cbb").Aggregate(AggregateEnum.Sum, .TopRow, p3, .BottomRow, p3)

Dim v4 As Double = v3/v1
StatusBar.Message2 = "                                                                            合计  销售:" & Format(v1,"########.##") & "   成本:" & Format(v2,"########.##") & "   利润:" & Format(v3,"########.##") & "   利润率:" & Format(v4,"Percent")  & ""
End If
End With
End If

是否加了蓝色字体这个判断,都会出现此错误。
如何保证是非负呢?

--  作者:有点甜
--  发布时间:2018/6/14 12:07:00
--  

我测试没问题。试试改成

 

With e.NewRange
    Dim t As Integer = .TopRow
    Dim b As Integer = .BottomRow
    If t >= 0 AndAlso b >= 0 AndAlso t < e.Table.rows.count AndAlso b < e.Table.Rows.count Then
        e.Table.Aggregate(AggregateEnum.Sum, .TopRow, 2, .BottomRow, 2)
    End If
End With

 

如果还有问题,试试加入变量,在beforeFilter、beforeSort事件,记录 vars("stop") = true,然后判断此变量,afterFilter、aftersort事件,设置 vars("stop") = false

 

如果还有问题,上传实例测试。


--  作者:samlzc
--  发布时间:2018/6/15 16:37:00
--  
还是有出现
.NET Framework 版本:2.0.50727.5456
Foxtable 版本:2018.3.9.1
错误所在事件:cbb,AfterSelRangeChange
详细错误信息:
索引超出范围。必须为非负值并小于集合大小。
参数名: index

出错误的是 index 是获取列位置时的问题吗?

--  作者:有点甜
--  发布时间:2018/6/15 16:46:00
--  
上传具体报错的项目测试。