以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [原创]代码问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=54905) |
-- 作者:爱相随 -- 发布时间:2014/8/7 9:47:00 -- [原创]代码问题 老师,我有ZJJHB和ZJSQB,以ZJJHBH表的JHBH和ZJSQB表的zJJHBH建立了关联,ZJSQB表的数据是由ZJJHB点击“生成单据—资金申请单”复制而来,并且在ZJJHB的逻辑列“JZ“列设置标记为TRUE,现在,如果在ZJSQB里把单据删除了(就是找不到关联的ZJJHBH了),则要求的ZJJHB的逻辑列变为FALSE。请老师帮忙编写一下代码,谢谢!! [此贴子已经被作者于2014-8-7 9:48:51编辑过]
|
-- 作者:Bin -- 发布时间:2014/8/7 9:48:00 -- BeforeDeleteDataRow 事件 找到对应行,设置为Flase即可 |
-- 作者:爱相随 -- 发布时间:2014/8/7 9:50:00 -- 请老师帮助贴出代码,谢谢 |
-- 作者:Bin -- 发布时间:2014/8/7 9:52:00 -- 你这表名看晕人.你懂写复制,自然也懂写这个. 利用FINd找到对应的行即可 如果是子父表关系,直接获取父行GetParentRow 即可 搞不定请上例子.
|
-- 作者:有点甜 -- 发布时间:2014/8/7 9:54:00 -- Dim dr As DataRow = DataTables("ZJJHB").Find("产品编号 = \'" & e.DataRow("产品编号") & "\'") |
-- 作者:爱相随 -- 发布时间:2014/8/7 9:55:00 -- 好吧,谢谢老师指点。。。 |
-- 作者:czy -- 发布时间:2014/8/7 9:57:00 -- 也可以在将子表的逻辑列改为表达式列,然后设置表达式为:iif(Parent(关联表名称)._Identify > 0,true,false) |
-- 作者:爱相随 -- 发布时间:2014/8/7 11:00:00 -- 老师,我在”资计划表“里有一行资金申请计划,有一列判断是否进行过付款申请,如果点击”生成单据—付款申请单“,则将选择的行将设定的列内容自动复制到资金申请表里,同时逻辑列自动变为TRUE,现在是,如果我把刚才复制过去的行删除了,则希望逻辑列的值自动改为FALSE。两个表都有JHBH列,并以此进行了关联。在资金计划表的DataColChanged里设了了如下代码,但好像不行,是代码放置的地方不对,还是代码有问题,请老师指点,麻烦了。。。 If e.DataCol.Name = "jhbh" Then \'如果内容发生变动的是JHB Dim dn As DataRow \'在资金申请表查找同名的计划编号(JHBH)行,将找到的行赋值给变量dr dn = DataTables("zjsqb").Find("[jhbh] = \'" & e.NewValue & "\'") If dn IsNot Nothing Then \'如果找到了同名的计划编号行,也就是dr不是Nothing e.DataRow("jz") = True Else e.DataRow("jz") = False End If End If
[此贴子已经被作者于2014-8-7 11:03:00编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/8/7 11:05:00 --
[此贴子已经被作者于2014-8-7 11:07:35编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/8/7 11:08:00 -- 写在BeforeDeleteDataRow事件
Dim dn As DataRow = DataTables("zjsqb").Find("[jhbh] = \'" & e.DataRow("jhbh") & "\'") |