以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- datacolchanged 没反应&删除关联数据 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=48195) |
||||
-- 作者:lxhmax -- 发布时间:2014/3/25 4:56:00 -- datacolchanged 没反应&删除关联数据 麻烦各位老师帮我看下什么情况; 1,修改或者重置 样品信息表的检测项目时,检测结果表不会因为检测流程流转记录表新增数据而跟着新增数据,即datacolchanged事件没有反应 2,当删除检测流程流转记录表数据的时候,如果检测结果有多条子明细的时候(流转记录表11-004的数据一条对应检测结果11-004三条数据,删除的时候我是想删除流转记录表一条信息时,检测结果对应的三条都跟着删除,实际上检测结果只删除一条数据,请问下这个要怎么弄? |
||||
-- 作者:Bin -- 发布时间:2014/3/25 8:26:00 -- 1.测试会自动添加 2.添加了3条同样的11-004 删除一条并未见3条一起删除.
|
||||
-- 作者:lxhmax -- 发布时间:2014/3/25 11:05:00 -- 奇怪了,软件问题?我重启电脑也同样不行的! 第二个问题我意思是想三条全部删除,不是只删除一条 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2014/3/25 11:41:00 -- 第一个问题,检查结果表确实没有增加,调整了红色代码的位置,也就是样品编号最后赋值,就可以了:
If e.DataCol.Name = "检测项目" Then
理由涉及到逻辑问题,因为样品编号变化,导致样品项目变化,触发流转记录表的DataColChanged事件,如果其他列此时没有内容,即使触发事件也没有值供填充到检查结果表,所以只有等其他列的值全部写入了,最后再写样品编号列的内容。
其实这种问题,你可以用这个方法来分析: http://www.foxtable.com/help/topics/1485.htm
一下子就知道原因了:事件触发了,但是GetValues没有取到值,自己分析比较方便,因为你知道具体的业务逻辑,别人就费力多了,要根据你的代码理清楚前后逻辑才能分析。
[此贴子已经被作者于2014-3-25 11:47:10编辑过]
|
||||
-- 作者:Bin -- 发布时间:2014/3/25 11:45:00 -- 额,楼主不是要这样自动添加吗? 我测试的时候怎么没问题. |
||||
-- 作者:狐狸爸爸 -- 发布时间:2014/3/25 11:46:00 -- 第二个问题,DatarowDeleting事件代码改为:
DataTables("委托协议书附件").deleteFor("样品项目 = \'" & e.DataRow("样品项目") & "\'")
你原来的代码本来就是只删除一行的,参考: http://www.foxtable.com/help/topics/0394.htm
|
||||
-- 作者:lxhmax -- 发布时间:2014/3/25 15:53:00 -- 非常感谢两位老师,以后会好好分析先的~ |