以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 父表触发 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=124569) |
-- 作者:liuandwang -- 发布时间:2018/9/9 16:41:00 -- 父表触发 各位老师: 我在关联明细副表“产品名称”列是通过Parent(主表订单).客户名称引用的,我想触发副表“产品名称”列, 在主表订单DataColChanged写入了如下代码: If e.DataCol.name = "产品名称" Then Dim pr As DataRow = e.DataRow.GetParentRow("订单明细表") \'找出对应的父行 If pr IsNot Nothing Then DataTables("订单明细表").DataCols("产品名称").RaiseDataColChanged(pr) \'通知系统此父行的数量列发生了改变,触发DataColChanged事件 End If End If 但发现不能使用,有没有更好的代码,谢谢
|
-- 作者:有点甜 -- 发布时间:2018/9/9 16:53:00 -- 直接说明你想做什么功能吧。 |
-- 作者:liuandwang -- 发布时间:2018/9/9 17:56:00 -- 在副表中需要通过触发产品名称,获得产品单价。 表事件:
If e.DataCol.Name = "产品名称" Then \'发生变化的是产品编号吗? \'在产品表找出该产品 Dim dz As DataRow dz = DataTables("产品信息").Find("产品名称 = \'" & e.DataRow("产品名称") & "\'" ) If dz IsNot Nothing \'如果找到, 则设置各列内容 e.DataRow("产品型号")= dz("产品型号") e.DataRow("产品单价")= dz("产品单价") End If End If \'自动引用产品型号和单位 |
-- 作者:有点甜 -- 发布时间:2018/9/9 18:11:00 -- 1、表达式列,是不会触发datacolchanged事件的。
2、如果要强制触发,父表datacolchanged事件这样写
msgbox(123) DataTables("订单明细表").DataCols("产品名称").RaiseDataColChanged("产品名称 = \'" & e.DataRow("产品名称") & "\'") |