Foxtable(狐表)用户栏目专家坐堂 → 如何判断树状节点没有子节点?(已解决)


  共有3881人关注过本帖树形打印复制链接

主题:如何判断树状节点没有子节点?(已解决)

帅哥哟,离线,有人找我吗?
jiterp
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
如何判断树状节点没有子节点?(已解决)  发帖心情 Post By:2015/1/10 17:21:00 [只看该作者]

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

需要怎么写代码?

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

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/10 17:28:00 [只看该作者]

判断一下 nd.nodes.count

 回到顶部
帅哥哟,离线,有人找我吗?
jiterp
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2015/1/10 17:37:00 [只看该作者]

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

 

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:321 积分:1916 威望:0 精华:0 注册:2014/8/24 13:36:00
  发帖心情 Post By:2015/1/10 20:35:00 [只看该作者]

这个你还等别人帮着做啊?


你删除节点肯定有动作

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

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

再删除你要删除的节点

 回到顶部
帅哥哟,离线,有人找我吗?
jiterp
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By:2015/1/10 20:44:00 [只看该作者]

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:321 积分:1916 威望:0 精华:0 注册:2014/8/24 13:36:00
  发帖心情 Post By:2015/1/10 20:49:00 [只看该作者]

你删除节点的代码呢?

 回到顶部
帅哥哟,离线,有人找我吗?
jiterp
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:715 积分:8574 威望:0 精华:0 注册:2011/11/13 15:49:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:321 积分:1916 威望:0 精华:0 注册:2014/8/24 13:36:00
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:321 积分:1916 威望:0 精华:0 注册:2014/8/24 13:36:00
  发帖心情 Post By:2015/1/10 22:08:00 [只看该作者]

在家没狗,没测试,大概就是这样

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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


 回到顶部
总数 11 1 2 下一页