以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]引用父表数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=180249) |
-- 作者:igewcw -- 发布时间:2022/10/10 18:56:00 -- [求助]引用父表数据 各位老师,您好,在此请教一下各位老师,我想实现的功能是在父子表关联的情况下,子表新增行时,其“单价”列能自动带出父表“单价”列的数据,但又同时能够手动修改子表“单价”列的数据。 目前使用在表属性中DataColChanged加入了如下代码,实现了跨表引用数据功能,但我在实际使用中发现在用重置列功能后会将所有历史记录的“单价”更新为最新单价,但我想保留之前的单价不变,代码该如何写? If e.DataCol.Name = "料号" Then \'如果内容发生变动的是品名列 If e.NewValue Is Nothing Then \'如果新值是空白,也就是品名列的内容为空 e.Da taRow("单价") = Nothing \'那么清空此行单价列的内容 Else Dim dr As DataRow \'否则在产品表查找同名的产品行,将找到的行赋值给变量dr dr = DataTables("父表名称").Find("[料号] = \'" & e.NewValue & "\'") If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing e.DataRow("单价") = dr("单价") End If End If End If
[此贴子已经被作者于2022/10/10 19:09:30编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/10/10 20:15:00 -- If e.DataCol.Name = "料号" Then \'如果内容发生变动的是品名列 If e.NewValue Is Nothing Then \'如果新值是空白,也就是品名列的内容为空 e.DataRow("单价") = Nothing \'那么清空此行单价列的内容 Elseif e.DataRow.isnull("单价") Dim dr As DataRow \'否则在产品表查找同名的产品行,将找到的行赋值给变量dr dr = DataTables("父表名称").Find("[料号] = \'" & e.NewValue & "\'") If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing e.DataRow("单价") = dr("单价") End If End If End If
|