以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于子表触发父表事件的简洁写法 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=69139) |
-- 作者:99473593 -- 发布时间:2015/5/31 14:55:00 -- [求助]关于子表触发父表事件的简洁写法 关于通过子表出发父表表达式列的DataColChanged 事件,由于父表好几列都是表达式列,而且数据都是是通过子表统计而得的,我在子表DataColChanged 中写下面代码,是可以触发父表事件的,但写成下面红色部分的代码时会出错,请帮我看下是错在哪! If e.DataCol.name = "XiaoShouDanMingXi_ShuLiang" Then If e.DataCol.name = "XiaoShouDanMingXi_PiFaJia" Then If e.DataCol.name = "XiaoShouDanMingXi_YouHuiJia" Then If e.DataCol.name = "XiaoShouDanMingXi_ChengBenJia" Then If e.DataCol.name = "XiaoShouDanMingXi_LingShouJia" Then 能写成下面怎样吗,我写成下面这样的形式会执行错误,帮我看下哪有问题,或者有什么简洁一点的写法
Select Case e.DataCol.name |
-- 作者:大红袍 -- 发布时间:2015/5/31 14:59:00 -- 不要像红色代码那样写。
你这样写,每修改一列,就会触发多列的值的变化,效率不高。建议还是分开处理。
同时,红色代码不可能报错。 |
-- 作者:99473593 -- 发布时间:2015/5/31 15:26:00 -- 哦,是我把一个字段引用错了 还有个问题,如果子表中的有表达式列 客户名称,是通过 Parent 引用父表的 客户 列数据,那怎么在父表中触发子表 客户名称 列的DataColChanged 呢,请帮写代码好吗 [此贴子已经被作者于2015/5/31 15:29:23编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/5/31 15:29:00 -- 无法子表表达式列的事件的。
对应的代码,写到父表的Datacolchanged事件里;或者是去触发子表非表达式列。 |
-- 作者:99473593 -- 发布时间:2015/5/31 15:34:00 -- 那意思只能用跨表引用更新的方法来触发非表达式列事件了,是吧 |
-- 作者:大红袍 -- 发布时间:2015/5/31 15:45:00 -- 如果你的计算写到父表,就必须用跨表引用;
如果触发子表某列,就直接还是用RaiseDataColChanged |