以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  用逻辑列来控制删除子表行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71811)

--  作者:everybody
--  发布时间:2015/7/18 14:15:00
--  用逻辑列来控制删除子表行

几句代码,搞死我了。

 

很简单的思路,当前行为逻辑列,如果勾选了,关联子表中就执行规定动作;如果取消勾选了,则删除关联子表中关联行。

 

尝试了一下代码,搞不定,高手帮忙修整下:

 

 

If e.DataCol.Name = "同意" Then  \'如果是当前是逻辑列“同意”

 

    If e.NewValue = True Then \'而且变动后的值是True(已勾选)
’执行动作
    End If

 

    If e.NewValue = False Then \'而且变动后的值是false(取消勾选)
        \'如果关联子表中存在关联行的话,删除之
        Dim pr As DataRow = e.DataRow.GetParentRow("推荐") \'获得此明细对应的订单
        If pr IsNot  Nothing Then \'如果有对应的订单
            Tables("考察").Current.Delete
        End If
    End If

 

End If

[此贴子已经被作者于2015/7/18 14:23:48编辑过]

--  作者:有点蓝
--  发布时间:2015/7/18 14:48:00
--  
删除关联子表应该用GetChildRows判断是否有子表数据
--  作者:everybody
--  发布时间:2015/7/18 15:03:00
--  
再研究下
--  作者:huozhe
--  发布时间:2015/8/7 12:21:00
--  
我也在研究 搞不定啊!
If e.DataCol.Name = "是否符合条件"
If e.newvalue = True Then 
    Dim nma() As String = {"序号","类别","姓名","性别"} \'A表数据来源列
    Dim nmb() As String = {"序号","类别","姓名","性别"}  \'B表数据接收列
    Dim dr As DataRow = DataTables("需求匹配").AddNew
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    Next
End If
  
If e.NewValue = False Then \'变动后的值是false(取消勾选)
       删除匹配行 请高手指教!!!   
End If
End If

--  作者:大红袍
--  发布时间:2015/8/7 12:37:00
--  

回复4楼,参考

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=72840