Foxtable(狐表)用户栏目专家坐堂 → AfterSelRangeChange


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

主题:AfterSelRangeChange

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
AfterSelRangeChange  发帖心情 Post By:2018/11/3 14:13:00 [只看该作者]


AfterSelRangeChange


If vars("stop") = True Then Return
If ModifierKey <> Keys.Control Then
    For Each p As String In ps
        If p >= 0 Then
            For i As Integer = 1 To e.Table.Cols.count
                e.Table.Grid.SetCellStyle(p+1, i, "")
            Next
        End If
    Next
    ps.clear
End If

For i As Integer = e.NewRange.TopRow To e.NewRange.BottomRow
    Dim p As String = i
    If i >= 0 AndAlso  ps.contains(p) = False Then
        ps.add(p)
    End If
Next

For Each p As String In ps
    
    If p >= 0  Then
        Dim s As C1.Win.C1FlexGrid.CellStyle = e.Table.grid.Styles.Add("selected")
        s.backcolor = Color.red '背景
        For i As Integer = 1 To e.Table.Cols.count
            e.Table.Grid.SetCellStyle(p+1, i, s)
        Next
        
        e.Table.DataTable.SysStyles("Focus").BackColor = Color.red
        
    End If
Next


.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2018.10.9.1
错误所在事件:
详细错误信息:
在 Range 对象中,Min (48)必须小于或等于 max (-1)。


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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/3 14:18:00 [只看该作者]

上传具体实例测试

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/11/5 11:54:00 [只看该作者]

这个问题排查出来了,是currentchanged条件问题,可是有时候选择行的时候会出现下提示:
.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2018.10.9.1
错误所在事件:配色表,AfterSelRangeChange
详细错误信息:
索引超出范围。必须为非负值并小于集合大小。
参数名: index

[此贴子已经被作者于2018/11/5 11:54:29编辑过]

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


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

这个问题,必须实例发上来测试。

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/11/6 10:03:00 [只看该作者]

测试是由这段代码引起的   
 If Forms("大货用量表").Opened() '一定要判断用于模拟关联表的窗口是否已经打开
    Dim t As Table = Tables("配色表")
    Dim b As Table = Tables("配码表")
    With Tables("大货用量表_Table1")
        If .rows.count > 0 Then '如果选定区域包括数据行
            Dim ids As String = ""
            For i As Integer = .TopPosition To .BottomPosition
                ids &= "'" & .Rows(i)("物料基本信息_物料ID") & "',"
            Next
            t.Filter = "物料ID in (" & ids.trim(",") & ") "
            b.Filter = "物料ID in (" & ids.trim(",") & ") "            
        End If
    End With
      t.sort = "颜色信息"
      b.sort = "尺码信息"
   End If

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


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

beforesort、aftersort 你写代码设置 vars("stop") 了没有?

 

具体出错实例发上来测试才行。


 回到顶部