Foxtable(狐表)用户栏目专家坐堂 → [求助]引用父表数据


  共有5870人关注过本帖树形打印复制链接

主题:[求助]引用父表数据

帅哥哟,离线,有人找我吗?
igewcw
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:98 积分:1176 威望:0 精华:0 注册:2015/2/4 18:24:00
[求助]引用父表数据  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109681 积分:558103 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部