以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 设置了汇总,但是筛选后常出现错误如何解决 (http://foxtable.net/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
如果还有问题,试试加入变量,在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 -- 上传具体报错的项目测试。 |