以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关联表从父表获取数据条件判断  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=119857)

--  作者:wjliu
--  发布时间:2018/6/2 10:49:00
--  关联表从父表获取数据条件判断
在表b和表c的同表a的逻辑判断前加个条件;
如果表b中同表a=true 那么表c中同一编号行的同表a资料列为不可选。同样如果表c中选择了同表a资料,那么表b中的同一编号的同表a资料的列为不可选
请教了

--  作者:wjliu
--  发布时间:2018/6/2 10:50:00
--  
项目
--  作者:wjliu
--  发布时间:2018/6/2 10:57:00
--  
If e.DataCol.Name = "同表a资料" AndAlso e.DataRow("同表a资料") = True Then
    Dim fdr As DataRow = e.DataRow.GetParentRow("表a")
    If fdr IsNot Nothing
        Dim nma() As String = {"姓名","性别","手机号"} \'A表数据来源列
        Dim nmb() As String = {"姓名","性别","手机号"} \'B表数据接收列
        
        For i As Integer = 0 To nma.Length - 1
            e.DataRow(nmb(i)) = fdr(nma(i))
        Next
    End If
End If

取值代码,在前面加个条件判断 如果表b选了,则表c为不可选 
在表c中选了,则表b为不可选

--  作者:有点蓝
--  发布时间:2018/6/2 11:18:00
--  
没看懂,截图说明一下
--  作者:wjliu
--  发布时间:2018/6/2 13:37:00
--  
项目上传


--  作者:wjliu
--  发布时间:2018/6/2 13:50:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:有点蓝
--  发布时间:2018/6/2 14:06:00
--  
表B,StartEdit事件

If e.IsFocusCell Then
    If e.Col.Name = "同表a资料" Then
        If DataTables("表C").Find("编号=\'" & e.Row("编号") & "\' and 同表a资料=true") IsNot Nothing Then
            e.Cancel = True
        End If
    End If
End If

表C同样处理,自己参考着做

--  作者:wjliu
--  发布时间:2018/6/2 15:38:00
--  

thank you