以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 窗口表中的beforesavedatarwo事件执行问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=172684) |
-- 作者:happyft -- 发布时间:2021/10/25 21:38:00 -- 窗口表中的beforesavedatarwo事件执行问题 一个窗口表中,有主表,同时还有一个子表,保存都是通用sql语句拼接语句一次性执行的;但在保存前想验证一些数据,所在在窗口表的beforesavedatarow事件写代码,而在全局表中的beforesavedatarow事件取消保存,现在问题时如何主表执行到全表事件后用e.cancel=true停止执行后子表的表事件中也就不再执行了, 如何让每个窗口表中的beforesavedatarow事件执行,但全局表事件中的这个同名事件都不执行? 谢谢!
|
-- 作者:有点蓝 -- 发布时间:2021/10/25 21:56:00 -- 全局表事件的e.cancel=true没有办法影响表事件。可以理解为是不同的事件,无法互相影响 如果不想执行全局表事件中的事件,不要开启这个全局表事件不就行了
|
-- 作者:HappyFt -- 发布时间:2021/10/25 23:26:00 -- 不能不启用,就是想在表事件中执行,然后到全局表事件中取消执行,主要是触发保存动作来验证数据,不需要这个事件来真正保存数据 If Tables(wn & "_主表").AllowEdit = True Then \'只有未锁定的表才需要保存
datatables(wn & "_主表").Save \'主表执行保存后到全局事件执行e.cancel=true后下面的各子表保存的代码就不会执行了 Dim drs As List(of DataRow) = DataTables("dtbSet").Select("MtbName = \'" & wn & "_主表\'") If drs.count > 0 Then \'有明细表时再保存各明细表 for each dr as datarow in drs datatables(dr("wintbN).Save \'主表保存过后子表就不会执行保存的动作了 Next End If end if |
-- 作者:有点蓝 -- 发布时间:2021/10/26 8:42:00 -- 没有办法。要么全部逻辑在全局表事件处理,要么全部在表事件处理 |