以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码建立副本关联  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=84633)

--  作者:woshiabc
--  发布时间:2016/5/6 10:14:00
--  代码建立副本关联
 Dim t As Table = Tables("PharmacyBagWelling_Table2")
With Tables("PharmacyBagWelling_Table1")
    If .Current Is Nothing Then
        t.Filter = "False"
    Else
        t.Filter = "报价单编号 = " & .Current("报价单编号")
    End If
End With

我设置了一个窗口,有报价主档和报价明细两个副本表,想要他们建立关联(报价单编号),使得点击主档的某行记录,报价明细就显示,相应的报价单编号明细,上面的代码是写在窗口的afterload事件里,发现如果没有明细就会报错。 然后我改成下面这段代码,发现报价明细什么东西都没有,并且新增主档的时候,明细看不见
Dim t As Table = Tables("PharmacyBagWelling_Table2")
With Tables("PharmacyBagWelling_Table1")
    If .Current Is Nothing Then
        t.Filter = "False"
    Else
        For Each r As Row In Tables("PharmacyBagWelling_Table2")
            If r.DataRow("报价单编号") = .Current("报价单编号")
                t.Filter = "报价单编号 = " & .Current("报价单编号")
            Else
                t.Filter = "False"
            End If
        Next
    End If
End With


--  作者:大红袍
--  发布时间:2016/5/6 10:21:00
--  

代码这样写

 

Dim t As Table = Tables("PharmacyBagWelling_Table2")
With Tables("PharmacyBagWelling_Table1")
    If .Current Is Nothing Then
        t.Filter = "False"
    Else
        t.Filter = "报价单编号 = \'" & .Current("报价单编号") & "\'"
    End If
End With


--  作者:大红袍
--  发布时间:2016/5/6 10:22:00
--  

如果你新增行的时候不显示,那你就在DataRowAdded事件写代码

 

If Tables.Contains("PharmacyBagWelling_Table1") Then

    e.DataRow("报价单编号") = Tables("PharmacyBagWelling_Table1").Current("报价单编号 ")

End If