以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何判断树状节点没有子节点?(已解决)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62949)

--  作者:jiterp
--  发布时间:2015/1/10 17:21:00
--  如何判断树状节点没有子节点?(已解决)

我是想实现这样一个功能,删除一个树状节点,要检测一下该节点原上节点是否还有子节点,如果没有,则原上节点有个逻辑字段为TRUE.

需要怎么写代码?

[此贴子已经被作者于2015-1-11 21:32:32编辑过]

--  作者:Bin
--  发布时间:2015/1/10 17:28:00
--  
判断一下 nd.nodes.count
--  作者:jiterp
--  发布时间:2015/1/10 17:37:00
--  

不会弄,还是做个实例让老师帮忙,谢谢。

 

要求点删除后,检测该节点上一节点如果没有子节点,由上一节点的是否末阶为TRUE.

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:编码规则.foxdb


--  作者:游
--  发布时间:2015/1/10 20:35:00
--  
这个你还等别人帮着做啊?


你删除节点肯定有动作

在这个动作上,获取要删除的节点,判断父节点的子节点数Nd.Nodes.Count

如果等于1,就给父节点的是否末阶设为TRUE

再删除你要删除的节点

--  作者:jiterp
--  发布时间:2015/1/10 20:44:00
--  

确实不会呀,不知道怎么做,求教了。

 


--  作者:游
--  发布时间:2015/1/10 20:49:00
--  
你删除节点的代码呢?
--  作者:jiterp
--  发布时间:2015/1/10 21:12:00
--  
以下是引用在2015-1-10 20:49:00的发言:
你删除节点的代码呢?

 

以下代码不起作用呀

Dim tr As WinForm.TreeView
Dim nd As WinForm.TreeNode
tr = Forms("窗口1").Controls("TreeView1")

If nd.Nodes.count = 1 Then
    Tables("部门档案").Current("是否末级") = True
    Tables("部门档案").Current.Delete
End If

[此贴子已经被作者于2015-1-10 21:30:25编辑过]

--  作者:游
--  发布时间:2015/1/10 22:04:00
--  


Dim tr As WinForm.TreeView

Dim nd As WinForm.TreeNode

Dim fnd As WinForm.TreeNode

tr = Forms("窗口1").Controls("TreeView1")

nd = tr.SelectedNode

fnd = nd.ParentNode

If fnd.Nodes.Count = 1 Then

    fnd.DataRow("是否末级") = True

    nd.DataRow.Delete

    nd.Delete

End If


--  作者:游
--  发布时间:2015/1/10 22:08:00
--  
在家没狗,没测试,大概就是这样
--  作者:有点甜
--  发布时间:2015/1/11 11:10:00
--  

Dim tr As WinForm.TreeView

Dim nd As WinForm.TreeNode

Dim fnd As WinForm.TreeNode

tr = Forms("窗口1").Controls("TreeView1")

nd = tr.SelectedNode

fnd = nd.ParentNode
If fnd IsNot Nothing Then
    If fnd.Nodes.Count = 1 Then
        fnd.DataRow("是否末级") = True
    End If
End If
nd.DataRow.DataTable.DeleteFor("tree = \'" & nd.DataRow("tree")  & "\' or tree like \'" & nd.DataRow("tree") & ".%\'")
nd.Delete