以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何后台跨表引用 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=166084) |
-- 作者:lal021962 -- 发布时间:2021/5/17 19:41:00 -- 如何后台跨表引用 If e.DataCol.Name = "品名" Then \'如果内容发生变动的是品名列 If e.NewValue Is Nothing Then \'如果新值是空白,也就是品名列的内容为空 e.DataRow("单价") = 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 以上为跨表引用的代码。但是此代码生效前提为"产品"表的所有行已加载,若要跨表引用未加载行的数据则无法实现。请问如何从后台所有数据中跨表引用
|
-- 作者:有点蓝 -- 发布时间:2021/5/17 20:36:00 -- dr = DataTables("产品").SQLFind("[品名] = \'" & e.NewValue & "\'") |
-- 作者:lal021962 -- 发布时间:2021/5/18 10:53:00 -- 谢谢,那请问如果是跨表引用的自动更新呢 If e.DataCol.Name = "单价" Dim Filter As String = "[品名] = \'" & e.DataRow("品名") & "\'" Dim drs As List(Of DataRow) = DataTables("订单").Select(Filter) For Each dr As DataRow In drs dr("单价") = e.DataRow("单价") Next End If 我改成了DataTables("订单").sqlSelect(Filter)后并没有效果
|
-- 作者:有点蓝 -- 发布时间:2021/5/18 11:03:00 -- 处理后台数据这章的内容都全部看看呗:http://www.foxtable.com/webhelp/topics/2901.htm |