Foxtable(狐表)用户栏目专家坐堂 → [求助]目录树


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

主题:[求助]目录树

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
[求助]目录树  发帖心情 Post By:2014/7/24 10:57:00 [只看该作者]

现有目录树共有7层:单位名称,部门体系,工作部门,办事处,岗位名称,职位层级,职系,职位职级
增加办事处的代码为:
Dim tr As WinForm.TreeView
Dim nd As WinForm.TreeNode
tr = e.Form.Controls("TreeView1")
nd = tr.SelectedNode
If nd IsNot Nothing Then
    If nd.Level = 6 Then
        MessageBox.Show("最多允许7层节点!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    ElseIf nd.Level = 1 Then
        Dim dr As DataRow = DataTables("部门岗位").Find("部门体系='" &nd.ParentNode.Text & "' and 部门名称='" & nd.text & "' and 办事处 is null")
        If dr Is Nothing Then
            dr = DataTables("部门岗位").AddNew
        End If
        dr("单位名称")="XX有限公司"
        dr("部门体系") = nd.ParentNode.Text
        dr("部门名称") = nd.Text
        dr("办事处") = "请增加办事处"
        
        nd = nd.Nodes.Add("请增加办事处")
        tr.SelectedNode = nd
        tr.Select()
        tr.BeginEdit()
    End If
End If

但是在增加岗位以及更下层的内容时,部门体系等值应该如何取呢?比如增加岗位时
dr("部门名称") = nd.ParentNode.Text
那部门体系的值应该如何取得?


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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/7/24 11:02:00 [只看该作者]

补充一下,此目录树对应着一个组织架构的表

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/24 11:04:00 [只看该作者]


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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/7/24 11:15:00 [只看该作者]

这个不适用啊,我是通过目录树去给表增加内容,那个generate的方法则是通过内容生成目录树的

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/24 11:18:00 [只看该作者]

 不明白你的意思,节点的FullPath属性不就是你要的内容么?


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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/7/24 11:42:00 [只看该作者]

不会用...甜姐,麻烦您针对我这个例子简单写一下可以吗

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/24 11:46:00 [只看该作者]

以下是引用lesliecheung912在2014-7-24 11:42:00的发言:
不会用...甜姐,麻烦您针对我这个例子简单写一下可以吗

 

类似这样

 


Dim Ary() As String = nd.FullPath.Split("\")
msgbox(ary(0))
msgbox(ary(1))
msgbox(ary.length)


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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/7/24 12:04:00 [只看该作者]

谢谢甜姐,还有个问题,就是有没有一种办法判断当前层次有多少个节点,
我想如果当前层次只有一个节点时,删除的时候只删除当前节点的内容而不删除当前行,
如果当前层次有多个节点时,删除的时候直接删除当前行

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/24 12:06:00 [只看该作者]

 可以判断。

 

判断子节点 nd.nodes.count

 

判断父节点的子节点 nd.parentNode.nodes.count

[此贴子已经被作者于2014-7-24 12:06:16编辑过]

 回到顶部