以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  主表和明细表的逻辑列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=41425)

--  作者:seal51
--  发布时间:2013/10/18 23:51:00
--  主表和明细表的逻辑列
主表和明细表都有一个逻辑列“已完工”,如何做到明细表的已完工列都勾选后,主表的已完工逻辑列自动打钩
--  作者:seal51
--  发布时间:2013/10/19 11:21:00
--  
不会啊
--  作者:blackzhu
--  发布时间:2013/10/19 13:19:00
--  
Dim pr As DataRow
For Each dr As DataRow In DataTables("子表").DataRows
    If dr("已完工") = True Then
        pr = dr.GetParentrow("父表")
        If pr IsNot Nothing Then
            pr("已完工") =True
        End If
    End If
Next

  命令窗口测试下

--  作者:seal51
--  发布时间:2019/8/30 15:39:00
--  
如何加个条件,当子表为空的时候, 主表的已完工列不勾选
--  作者:有点蓝
--  发布时间:2019/8/30 15:44:00
--  
汗!这么多年这种问题还无法解决?


--  作者:seal51
--  发布时间:2019/8/30 16:19:00
--  
图片点击可在新窗口打开查看,有点复杂!
现在在采购明细表的DataColChanged事件里, 代码如下:
If e.DataCol.name="已完成" Then
    Dim pdr = e.DataRow.GetParentRow("采购主表")
    If pdr IsNot Nothing Then
        Dim xdList As List(of DataRow)=e.DataTable.Select("采购单号=\'" & e.DataRow("采购单号") & "\'and 已完成=true")
        If xdList.count=e.DataTable.Select("采购单号=\'" & e.DataRow("采购单号") &"\'").count Then  
            pdr("已完成")=True
        Else
            pdr("已完成")=False
        End If
    End If
End If
问题是当采购明细表为空的时候, 采购主表的已完成也自动勾选, 不清楚那个地方有问题, 老师帮忙更改一下代码, 谢谢!

--  作者:有点蓝
--  发布时间:2019/8/30 16:37:00
--  
明细表没有数据是不可能触发这个代码的。再怎么改也没有用。检查其他地方代码