Foxtable(狐表)用户栏目专家坐堂 → [求助]如何动态管理目录树


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

主题:[求助]如何动态管理目录树

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


加好友 发短信
等级:婴狐 帖子:8 积分:145 威望:0 精华:0 注册:2008/11/8 23:09:00
[求助]如何动态管理目录树  发帖心情 Post By:2010/5/10 14:45:00 [只看该作者]

通过表格多列内容生成的目录树,想通过窗口的控件显示和修改表格内容,来动态管理目录树

 

单击目录树的节点,相应的窗口控件内显示其节点信息

 

通过代码如何实现



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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/10 14:51:00 [只看该作者]

1、窗口中的控件绑定到表中对应的列

2、首先用buildtree生成目录树。

3、设置目录树的AfterSelect事件代码,定位到单击节点所对应的行,例如:

 

Dim Vals() As String = e.Node.FullPath.Split("\")
Dim
Filter As String = "[省市] = '" & Vals(0) & "' And [县市] = '" & Vals(1) & "'"
Tables("表名").Position = Tables("表名").findRow(Filter,0,False)


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


加好友 发短信
等级:婴狐 帖子:8 积分:145 威望:0 精华:0 注册:2008/11/8 23:09:00
  发帖心情 Post By:2010/5/10 15:50:00 [只看该作者]

 

 

点击一级和二级节点出现如上问题,索引超出了数组界限


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


加好友 发短信
等级:婴狐 帖子:8 积分:145 威望:0 精华:0 注册:2008/11/8 23:09:00
  发帖心情 Post By:2010/5/10 15:52:00 [只看该作者]

截图不知道怎么放上去

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


加好友 发短信
等级:婴狐 帖子:8 积分:145 威望:0 精华:0 注册:2008/11/8 23:09:00
  发帖心情 Post By:2010/5/10 15:52:00 [只看该作者]

图片点击可在新窗口打开查看

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/10 15:54:00 [只看该作者]

你可以判断节点的层级,如果小于2,则退出。

 

If e.Node.Level < 2 then

    Return

End If

Dim Vals() As String = e.Node.FullPath.Split("\")
Dim
Filter As String = "[省市] = '" & Vals(0) & "' And [县市] = '" & Vals(1) & "'"
Tables("表名").Position = Tables("表名").findRow(Filter,0,False)


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


加好友 发短信
等级:婴狐 帖子:8 积分:145 威望:0 精华:0 注册:2008/11/8 23:09:00
  发帖心情 Post By:2010/5/10 21:24:00 [只看该作者]

已经解决,代码如下,非常感谢

 

If e.Node.Level = 0 Then
    Dim Vals() As String = e.Node.FullPath.Split("\")
    Dim Filter As String = "[一级费用类别] = '" & Vals(0) & "' "
    Tables("费用类别").Position = Tables("费用类别").findRow(Filter,0,False)
ElseIf e.Node.Level = 1 Then
    Dim Vals() As String = e.Node.FullPath.Split("\")
    Dim Filter As String = "[一级费用类别] = '" & Vals(0) & "'and [二级费用类别] = '" & Vals(1) & "' "
    Tables("费用类别").Position = Tables("费用类别").findRow(Filter,0,False)
ElseIf e.Node.Level = 2 Then
    Dim Vals() As String = e.Node.FullPath.Split("\")
    Dim Filter As String = "[一级费用类别] = '" & Vals(0) & "'and [二级费用类别] = '" & Vals(1) & "' and [三级费用类别] = '" & Vals(2) & "' "
    Tables("费用类别").Position = Tables("费用类别").findRow(Filter,0,False)
End If


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/10 21:26:00 [只看该作者]

不错,刚开始就能举一反三,继续努力。

 

图片点击可在新窗口打开查看


 回到顶部