以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 变态测试产生的错误,请教解决办法。。 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=19489)
|
-- 作者:reachtone
-- 发布时间:2012/5/11 16:43:00
-- 变态测试产生的错误,请教解决办法。。
打开foxtable,随便用哪个表,只保留一行数据,然后在命令窗口执行:
With CurrentTable .AddNew .Sort = "[_Identify] Desc" .Position = 0 End With
这个时候,一共是2行数据,新增加的行在上面。
然后,在当前表的BeforeSelChange事件中设置:
e.Table.Current.Delete
事件设置完成后,将光标从第一行移动到第二行,大大的红叉出现了!!
|
-- 作者:reachtone
-- 发布时间:2012/5/11 17:02:00
--
此问题百思不得其解:本来就有2行数据,删除一行后应该还有一行的,为什么出错呢?
而且,这种错误很恐怖,大大的红叉,把客户都紧张坏了。
反复检查,才发现问题这里。请教解决办法。。
|
-- 作者:狐狸爸爸
-- 发布时间:2012/5/11 17:29:00
--
不要在BeforeSelChange事件中删除行。
|
-- 作者:reachtone
-- 发布时间:2012/5/11 17:39:00
--
以下是引用狐狸爸爸在2012-5-11 17:29:00的发言:
不要在BeforeSelChange事件中删除行。
但是,客户有这样的要求:在换行前,先判断当前行的指定内容是否为空,如果为空的话,就删除之。
|
-- 作者:reachtone
-- 发布时间:2012/5/11 17:42:00
--
current和position都没有before事件,只有在beforeselchange事件中设置。
|
-- 作者:狐狸爸爸
-- 发布时间:2012/5/11 17:52:00
--
想办法改变设计思路吧。
|
-- 作者:reachtone
-- 发布时间:2012/5/11 18:07:00
--
估计这应该是bug了吧。建议还是抽空研究一下看看能否解决。。
实在不行,只有不允许离开当前行了。或者由用户将无效的行手工删除。
此主题相关图片如下:111.jpg
|
-- 作者:reachtone
-- 发布时间:2012/5/12 11:14:00
--
这个绝对是bug,还望老六重视。
我想着变通一下,不用删除行了,在beforeselchange中用以下代码撤销修改,竟然一样出现错误:
e.Table.Current.DataRow.Reject
换行前对当前记录的完整性进行判断,如果不完整就撤销修改(新增行的话就自动删除了),这是很非常合理的应用需求!
|
-- 作者:FoxMan
-- 发布时间:2012/5/12 11:23:00
--
試試:BeforeAddDataRow
|
-- 作者:reachtone
-- 发布时间:2012/5/12 11:25:00
--
狐表在对同一行、不同列的数据处理中,非常严谨,相关事件很丰富。
但对于跨行就很弱了,不仅current和position都没有before事件,没办法在换行前进行判断;而且在selchange事件中不能进行行数据的delete或reject处理。
实在想不出其它什么变通的解决思路,最下策只有“不能离开当前行或者手工删除无效行”,但这种处理方法实在太过弱智!
|