以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 表达式触发 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=173104) |
-- 作者:wgqcool -- 发布时间:2021/11/15 15:25:00 -- 表达式触发 思路:当发货明细表正常编辑操作时(已发货数量列的值变化),订单明细表的”已发货数量“(表达式sum)发生变化,同时订单表的”已发齐“(表达式IIF)也发生变化,同时通过RaiseDataColChanged触发订单表的DataColChanged将数据列已完成=表达式列已发齐;(后续还要增加类似已付款的表达式列来触发订单已完成的情况,且已完成需要用数据列来保存到SQL中) 问题:正常操作时没问题,但当发货明细表执行撤销操作时,似乎无法触发RaiseDataColChanged,导致订单表的DataColChanged无法触发。请教老师有没有什么解决方法? |
-- 作者:有点蓝 -- 发布时间:2021/11/15 15:45:00 -- 参考:http://www.foxtable.com/webhelp/topics/2381.htm |
-- 作者:wgqcool -- 发布时间:2021/11/15 15:53:00 -- 参考的就是这个帮助,这个帮助已经可以背下来了,现在遇到的问题是用DataTable.RejectChanges撤销表的时候,没办法做触发,有没有其他更好的选择?烦请老师帮忙看一下。 [此贴子已经被作者于2021/11/15 15:52:53编辑过]
|
-- 作者:wgqcool -- 发布时间:2021/11/15 15:56:00 -- 或者有没有什么方法,可以将一个表达式列的值和一个数据列的值做关联绑定。 |
-- 作者:有点蓝 -- 发布时间:2021/11/15 16:12:00 -- 既然都背下来了,为什么还是按照错误的用法来使用? 只能按照帮助的用法处理,没有什么所谓的绑定方法 |
-- 作者:wgqcool -- 发布时间:2021/11/15 16:41:00 -- 关于通过子表来触发父表的事件,我不知道我错在哪里,请老师指点一下 我只改了帮助文件是这条:Dim pr As DataRow = e.DataRow.GetParentRow("订单") \'找出对应的父行 这里我用了 Dim pr As DataRow = DataTables("订单号").Find("订单号 = \'" & e.DataRow("订单号") & "\'") 也是因为多表关联,反正是要在订单表中找到对应的行,如果说这个必须要用GetParentRow的方法,这也简单,改一下就是了,我测试的时候也都试过了,效果是一致的。 但问题不是出在这里,我说了,正常编辑子表是没问题的,父表的事件是可以触发的,但当子表进行撤销操作的时候(Tables(e.Form.name & "_发货明细表").DataTable.RejectChanges),父表事件没有被触发,(我的理解是撤销的时候,连子表的DataColChanged,更不用说通过RaiseDataColChanged触发父表的DataColChanged了)。有没有什么方法可以在撤销子表的情况下,也能触发父表事件? |
-- 作者:狐狸爸爸 -- 发布时间:2021/11/15 16:47:00 -- 可以自己做个撤销按钮,单击按钮,同步核销子表和父表的修改: Tables(e.Form.name & "_发货明细表").DataTable.RejectChanges() DataTables("父表名称").RejectChanges()
|
-- 作者:有点蓝 -- 发布时间:2021/11/15 16:51:00 -- 把订单表的datacolchanged代码发上来,代码尽量不要截图,这样别人没有办法改 case "已发起" 改为 case “订单号” 然后明细表 DataTables("订单表").DataCols("已发起").RaiseDataColChanged(pr) 改为 然后明细表 DataTables("订单表").DataCols("订单号").RaiseDataColChanged(pr) 由于订单明细表是根据发货明细表统计的,所以订单明细表和发货明细表也要根据同样的方法做,也就是要通过2级触发,发货明细表的数量改变,通过RaiseDataColChanged触发订单明细表的datacolchanged事件,然后订单明细表的datacolchanged事件里再触发订单表的datacolchanged事件。
|
-- 作者:wgqcool -- 发布时间:2021/11/15 17:08:00 -- 哇塞,惊动了狐爸,我有点激动。撤销父表的方法可能不行,父表的其他行有可能在操作的,不能因为撤销子表来对父表进行撤销。 我可能是思路上没理清楚,陷进去了,感谢狐爸和有点蓝老师,我还是再想想其他的解题思路。
|