Foxtable(狐表)用户栏目专家坐堂 → 设置了汇总,但是筛选后常出现错误如何解决


  共有2743人关注过本帖树形打印复制链接

主题:设置了汇总,但是筛选后常出现错误如何解决

帅哥哟,离线,有人找我吗?
samlzc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:88 积分:1114 威望:0 精华:0 注册:2017/4/10 17:55:00
设置了汇总,但是筛选后常出现错误如何解决  发帖心情 Post By: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

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:88 积分:1114 威望:0 精华:0 注册:2017/4/10 17:55:00
  发帖心情 Post By:2018/6/15 16:37:00 [只看该作者]

还是有出现
.NET Framework 版本:2.0.50727.5456
Foxtable 版本:2018.3.9.1
错误所在事件:cbb,AfterSelRangeChange
详细错误信息:
索引超出范围。必须为非负值并小于集合大小。
参数名: index

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/15 16:46:00 [只看该作者]

上传具体报错的项目测试。

 回到顶部