以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 跨表引用问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=114174) |
-- 作者:swagger -- 发布时间:2018/1/30 22:18:00 -- 跨表引用问题 1. 两个表:订单1, 订单2, 1个订单窗口。订单窗口的新建订单按钮代码: Tables("订单").AddNew() Dim fl As Row = Tables("订单2").AddNew fl("订单id") = Tables("订单").Current("订单id") 当新建订单时候,表订单2自动输入和表订单1的订单id 2. 跨表引用,在订单2的datacolchanged 输入代码 If e.DataCol.Name = "订单id" Then If e.NewValue Is Nothing Then e.DataRow("客户名称") = Nothing Else Dim dr As DataRow dr = DataTables("订单").Find("[订单id] = \'" & e.NewValue & "\'") If dr IsNot Nothing e.DataRow("客户名称") = dr("客户名称") End If End If End If 3.问题: 订单2的“”客户名称“”不会自动引用订单1的“客户名称“,怎么解决?
|
-- 作者:有点蓝 -- 发布时间:2018/1/30 22:25:00 -- 代码没有问题。可能订单id对应不上,或者客户名称没有数据 |
-- 作者:swagger -- 发布时间:2018/1/30 22:31:00 -- 表订单1是有客户名称的,不过你这么一问,我就刚才试了一下,猜测是因为表订单1和表订单2的同时输入订单号,然后订单1才输入客户名称,所以表订单2就没法引用客户名称了。这个应该怎么弄? |
-- 作者:有点蓝 -- 发布时间:2018/1/30 22:57:00 -- 订单1的datacolchanged If e.DataCol.Name = "客户名称" Then If e.NewValue > "" Then Dim dr As DataRow dr = DataTables("订单2").Find("[订单id] = \'" & e.DataRow("订单id") & "\'") If dr IsNot Nothing dr ("客户名称") = e.NewValue End If End If End If |