以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  父表逻辑列为TRUE所有相应的字表也为TRUE  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=103629)

--  作者:蓝蚂蚁
--  发布时间:2017/7/12 22:50:00
--  父表逻辑列为TRUE所有相应的字表也为TRUE
父表与子表通过【订单号】进行关联,父表的【状态】列为逻辑列,子表的【随父状态】列也为逻辑列,子表的同订单号会有多个记录,有时只有一个记录。
现在想要实现的功能:父表的【状态】列为True时对应的子表所有记录也为True(指同订单号),反之,父表的【状态】列为False时对应的子表所有记录也为False(指同订单号)
父表的代码如下,但子表只实现了第一条记录跟着变化,不是所有的记录都变化。如何实现子表同订单号的记录都跟着变化。
If e.DataCol.Name = "状态" Then
    Dim dr As DataRow
    dr = DataTables("明细表").Find("[订单号] = \'" & e.DataRow("订单号") & "\'")
    If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing
        If e.DataRow("状态")=True Then
            dr("随父状态")=True
        Else
            dr("随父状态")=False
        End If
    End If
End If

--  作者:有点甜
--  发布时间:2017/7/12 22:54:00
--  
直接写
 
If e.DataCol.Name = "状态" Then
    DataTables("明细表").replacefor("随父状态", e.newvalue, "[订单号] = \'" & e.DataRow("订单号") & "\'")
End If

--  作者:蓝蚂蚁
--  发布时间:2017/7/12 22:57:00
--  
附加问题:如果是在窗口中
子表之前已经有记录,通过新增按钮来增加,如果子表(同订单号)之前是True ,则新增的也True,反之如果子表(同订单号)之前是False ,则新增的也False,代码又如何实现?
[此贴子已经被作者于2017/7/12 22:57:15编辑过]

--  作者:蓝蚂蚁
--  发布时间:2017/7/12 23:01:00
--  
有点甜老师 谢谢你 按照你的代码完美解决问题 ,万分感谢
--  作者:有点甜
--  发布时间:2017/7/12 23:16:00
--  
以下是引用蓝蚂蚁在2017/7/12 22:57:00的发言:
附加问题:如果是在窗口中
子表之前已经有记录,通过新增按钮来增加,如果子表(同订单号)之前是True ,则新增的也True,反之如果子表(同订单号)之前是False ,则新增的也False,代码又如何实现?
[此贴子已经被作者于2017/7/12 22:57:15编辑过]

 

Dim pr As Row = Tables("主表").Current

Dim nr As row = Tables("明细表").AddNew

nr("订单号") = pr("订单号")

nr("随父状态") = pr("状态")