以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  使用Syscmd.Project.Save()后,“撤销”命令还能用,一使用就出错。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=137471)

--  作者:fivetable
--  发布时间:2019/7/6 20:00:00
--  使用Syscmd.Project.Save()后,“撤销”命令还能用,一使用就出错。

用的是ACCESS数据库

在表中,编辑后,不管是有无点,系统命令“保存”,点“撤销”,就会提示如下错误:

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

去论坛查了此类问题,没有我要的信息,最后自己调试了下。发现了问题所在

在表事件中,AfterEdit结束编辑单元格后执行,通常用于执行一些特定的操作和计算),有写了如下事件:

If E.Col.Name="通码" Or E.Col.Name="部件数量" Then
\'\'e.Table.save
Syscmd.Project.Save()
End If

所以,每次编辑“通码”或"部件数量"列后,按撤销,都会有错误提示!编辑其他列,都没有问题。

正常操作是,编辑行后,不保存就能使用系统命令“撤销”,保存后,就不能用使用。

我就纳闷?以上事件,用了系统命令,Syscmd.Project.Save(),后,按理说,撤销功能应该不能用了啊,为什么“撤销”图标不是灰色的,为什么还能用,一用就错误提示!


 


--  作者:狐狸爸爸
--  发布时间:2019/7/7 8:43:00
--  
收到