以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求解关于跨表条件更新选择相关数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=118491)

--  作者:mrlua88
--  发布时间:2018/5/4 10:20:00
--  求解关于跨表条件更新选择相关数据

项目上有2个表 其中表A是参数表,B表为参数数据显示表,参考过跨表更新技术文档,只能更新设置的3列数据。

表A是参数表,其中表A中【位置】列作为B表的【位置选择】列,,而表A的 A1 A2 A3 A4 A5 A6为参考数据,目的是,在表B里通过【选择或修改(位置选择)内容】,自动带出 相关A1 A2 A3 A4 A5 A6的其中三列内容。

例如:在表B选择位置A  ,参数1、参数2、参数3带出表A那边A1 A3 A5列数据;

         在表B选择位置B ,参数1、参数2、参数3带出表A那边带出A2 A4 A6列数据;

         在表B选择位置C ,参数1、参数2、参数3带出表A那边带出A1 A2 A3列数据;

         在表B选择位置D ,参数1、参数2、参数3带出表A那边带出A4 A5 A6列数据。

就是需要做这个效果。项目已经上传,已经做了跨表更新,只能更新设置的三列。。求解答,谢谢

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目11.table


--  作者:有点甜
--  发布时间:2018/5/4 10:25:00
--  
If e.DataCol.Name = "位置选择" Then
    If e.NewValue Is Nothing Then
        e.DataRow("参数1") = Nothing
        e.DataRow("参数2") = Nothing
        e.DataRow("参数3") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("表A").Find("[位置] =\'" & e.NewValue & "\'" )
        If dr IsNot Nothing
            If e.newvalue = "A" Then
                e.DataRow("参数1") = dr("A1")
                e.DataRow("参数2") = dr("A3")
                e.DataRow("参数3") = dr("A5")
            ElseIf e.newvalue = "B" Then
                e.DataRow("参数1") = dr("A2")
                e.DataRow("参数2") = dr("A4")
                e.DataRow("参数3") = dr("A6")

            End If
        End If
    End If
End If

--  作者:mrlua88
--  发布时间:2018/5/4 10:34:00
--  
以下是引用有点甜在2018/5/4 10:25:00的发言:
If e.DataCol.Name = "位置选择" Then
    If e.NewValue Is Nothing Then
        e.DataRow("参数1") = Nothing
        e.DataRow("参数2") = Nothing
        e.DataRow("参数3") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("表A").Find("[位置] =\'" & e.NewValue & "\'" )
        If dr IsNot Nothing
            If e.newvalue = "A" Then
                e.DataRow("参数1") = dr("A1")
                e.DataRow("参数2") = dr("A3")
                e.DataRow("参数3") = dr("A5")
            ElseIf e.newvalue = "B" Then
                e.DataRow("参数1") = dr("A2")
                e.DataRow("参数2") = dr("A4")
                e.DataRow("参数3") = dr("A6")

            End If
        End If
    End If
End If

解决了 谢谢。图片点击可在新窗口打开查看