以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 同步行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=193250) |
-- 作者:hfapplehao -- 发布时间: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
|
-- 作者:有点蓝 -- 发布时间: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 |