Foxtable(狐表)用户栏目专家坐堂 → 表达式触发


  共有4049人关注过本帖树形打印复制链接

主题:表达式触发

帅哥哟,离线,有人找我吗?
wgqcool
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
表达式触发  发帖心情 Post By:2021/11/15 15:25:00 [显示全部帖子]


此主题相关图片如下:未命名.png
按此在新窗口浏览图片



思路:当发货明细表正常编辑操作时(已发货数量列的值变化),订单明细表的”已发货数量“(表达式sum)发生变化,同时订单表的”已发齐“(表达式IIF)也发生变化,同时通过RaiseDataColChanged触发订单表的DataColChanged将数据列已完成=表达式列已发齐;(后续还要增加类似已付款的表达式列来触发订单已完成的情况,且已完成需要用数据列来保存到SQL中)
问题:正常操作时没问题,但当发货明细表执行撤销操作时,似乎无法触发RaiseDataColChanged,导致订单表的DataColChanged无法触发。请教老师有没有什么解决方法?

 回到顶部
帅哥哟,离线,有人找我吗?
wgqcool
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
  发帖心情 Post By:2021/11/15 15:53:00 [显示全部帖子]

参考的就是这个帮助,这个帮助已经可以背下来了,现在遇到的问题是用DataTable.RejectChanges撤销表的时候,没办法做触发,有没有其他更好的选择?烦请老师帮忙看一下。

[此贴子已经被作者于2021/11/15 15:52:53编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
wgqcool
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
  发帖心情 Post By:2021/11/15 15:56:00 [显示全部帖子]

或者有没有什么方法,可以将一个表达式列的值和一个数据列的值做关联绑定。


 回到顶部
帅哥哟,离线,有人找我吗?
wgqcool
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
  发帖心情 Post By: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了)。有没有什么方法可以在撤销子表的情况下,也能触发父表事件?




 回到顶部
帅哥哟,离线,有人找我吗?
wgqcool
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
  发帖心情 Post By:2021/11/15 17:08:00 [显示全部帖子]

哇塞,惊动了狐爸,我有点激动。撤销父表的方法可能不行,父表的其他行有可能在操作的,不能因为撤销子表来对父表进行撤销。
我可能是思路上没理清楚,陷进去了,感谢狐爸和有点蓝老师,我还是再想想其他的解题思路。

 回到顶部