以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  菜单systemidle事件执行过程中发生错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85533)

--  作者:xujie80
--  发布时间:2016/5/27 14:26:00
--  菜单systemidle事件执行过程中发生错误
我并没有在systemidle设置代码,但在运行过程中发生错误:

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2016.5.13.1
错误所在事件:SystemIdle
详细错误信息:
索引超出范围。必须为非负值并小于集合大小。
参数名: index

这个问题如何解决?


--  作者:大红袍
--  发布时间:2016/5/27 14:38:00
--  
 你执行什么操作的时候报这个错?贴出你执行的代码
--  作者:xujie80
--  发布时间:2016/5/27 14:46:00
--  
Dim dw As WinForm.ComboBox = e.Form.Controls("单位")
Dim sz As WinForm.ComboBox = e.Form.Controls("所站办组")
Dim hhs As String = DataTables("员工资料").SQLGetComboListString("户号"," 部门村居 = \'" & dw.value & "\' and 所站办组 = \'" & sz.value & "\'")
Tables("家庭人口_house").filter = " 户号 in ( \'" & hhs.Replace("|", "\',\'") & "\' )"
Tables("家庭人口_people").filter = " 户号 in ( \'" & hhs.Replace("|", "\',\'") & "\' )"

--  作者:xujie80
--  发布时间:2016/5/27 14:47:00
--  

在执行SelectedIndexChanged中上述代码时出错


--  作者:xujie80
--  发布时间:2016/5/27 14:49:00
--  
两个表,一个是家庭表,一个是员工表,以户号为关联,但没有建立关联表。两个表同样以HHS为加载条件。执行不了几次就出错。
--  作者:大红袍
--  发布时间:2016/5/27 14:51:00
--  

 去看对应表的 currentChanged 等事件,注释掉,看是否还报错。如果报错,确认是哪个事件,贴出代码。


--  作者:xujie80
--  发布时间:2016/5/27 14:56:00
--  
我在PositionChanged事件中加入了以下代码
Dim t1 As Table = Tables("家庭人口_people")
Dim t2 As Table = Tables("家庭人口_house")
Dim r As Row = Tables("家庭人口_house").Current
If r Is Nothing Then
    t1.filter = "false"
    t1.filter = "false"
Else
    t1.Filter = " 户号 = \'" & r("户号") &  "\'"
    t2.Filter = " 户号 = \'" & r("户号") &  "\'"
End If
会不会是频繁执行造成的?


--  作者:大红袍
--  发布时间:2016/5/27 15:00:00
--  

设置Filter不应该会报这个错的,肯定有其他代码有影响。

 

做例子发上来。


--  作者:xujie80
--  发布时间:2016/5/27 15:06:00
--  
改成click事件后没有问题了,我估计是筛选一次就执行一次,造成崩溃了