Foxtable(狐表)用户栏目专家坐堂 → 同步行


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

主题:同步行

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


加好友 发短信
等级:童狐 帖子:215 积分:2149 威望:0 精华:0 注册:2018/3/30 19:56:00
同步行  发帖心情 Post By:2024/8/29 15:06:00 [只看该作者]

把这段代码放在保存按钮下面,发现表位空表的时候(删去全部行的状态),会提示错误
错误提示如下:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:自定义函数,同步选定行
详细错误信息:
调用的目标发生了异常。
索引超出范围。必须为非负值并小于集合大小。
参数名: index


源代码如下:
'此函数的目的是针对当前表,选中一定的区域,然后程序会判断选定的行,分别对每一行进行同步操作
Dim tb As Table = CurrentTable

If tb IsNot Nothing Then ' 判断表是不是为空
    ' 检查选定行的范围是否有效,并且确保索引在表格行数范围内
    If tb.TopPosition >= 0 AndAlso tb.BottomPosition >= 0 AndAlso tb.TopPosition <= tb.BottomPosition AndAlso tb.BottomPosition < tb.Rows.Count Then
        For i As Integer = tb.TopPosition To tb.BottomPosition
            ' 检查索引是否在有效范围内
            If i >= 0 AndAlso i < tb.Rows.Count Then
                Dim dr As Row = tb.Rows(i)
                
                ' 检查行是否有效
                If dr IsNot Nothing Then
                    dr.Load()
                End If
            End If
        Next
    Else
        popmessage("选定行的范围无效或表格中没有有效的行。")
    End If
Else
    popmessage("表格为空。")
End If

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/8/29 15:15:00 [只看该作者]

我测试没有问题呀,做个例子发过来看看。另外代码没有必要搞那么复杂,有些判断是没有必要的

Dim tb As Table = CurrentTable

If tb.Rows.Count > 0 Then ' 判断表是不是为空
    ' 检查选定行的范围是否有效,并且确保索引在表格行数范围内
    If tb.TopPosition >= 0 AndAlso tb.BottomPosition >= 0 Then
        For i As Integer = tb.TopPosition To tb.BottomPosition
            tb.Rows(i).Load()
        Next
    Else
        popmessage("选定行的范围无效或表格中没有有效的行。")
    End If
Else
    popmessage("表格为空。")
End If

 回到顶部