Foxtable(狐表)用户栏目专家坐堂 → [求助]如何生成这种目录树


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

主题:[求助]如何生成这种目录树

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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
[求助]如何生成这种目录树  发帖心情 Post By:2012/11/4 12:28:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:6666.png
图片点击可在新窗口打开查看

如图所示,要让 1,2,3…… 的Node.Name = 1 Node.Text = 壹

请问如何实现?

列可能是多列的,不一定就是三列,也就是在BuildTree(DataTableName, Columns, Filter, Sort)的效果也要达到

 

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


 回到顶部
美女呀,离线,留言给我吧!
38585830
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:206 积分:1782 威望:0 精华:1 注册:2012/8/20 14:23:00
  发帖心情 Post By:2012/11/4 12:36:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看
不知是不是这样

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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/11/4 12:42:00 [只看该作者]

是的。

 回到顶部
美女呀,离线,留言给我吧!
38585830
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:206 积分:1782 威望:0 精华:1 注册:2012/8/20 14:23:00
  发帖心情 Post By:2012/11/4 13:16:00 [只看该作者]

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
tr.BuildTree("表A","第一列|第二列|第四列")

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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/11/4 13:23:00 [只看该作者]

谢谢楼上的回复,

但是这样的话,第四列的name和名称就一样了

我要求name是第三列 text是第四列


 回到顶部
美女呀,离线,留言给我吧!
38585830
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:206 积分:1782 威望:0 精华:1 注册:2012/8/20 14:23:00
  发帖心情 Post By:2012/11/4 13:37:00 [只看该作者]

那就是你在代码里设置,当选择第三个节点的时候,在表A中找到第四列等于节点三的行,然后再将第三列的值赋给对应的项目。不知这样说能否理解?


 回到顶部
美女呀,离线,留言给我吧!
38585830
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:206 积分:1782 威望:0 精华:1 注册:2012/8/20 14:23:00
  发帖心情 Post By:2012/11/4 13:38:00 [只看该作者]

你有例子吗?

 


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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2012/11/4 13:41:00 [只看该作者]

我上传了啊

 回到顶部
美女呀,离线,留言给我吧!
38585830
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:206 积分:1782 威望:0 精华:1 注册:2012/8/20 14:23:00
  发帖心情 Post By:2012/11/4 13:45:00 [只看该作者]

If e.Node.Level = 2 Then '如果单击的是第三层节点
    Dim ps() As String = e.Node.FullPath.Split("\")  
    Dim dr As DataRow = DataTables("表A").Find("第一列 = '" & ps(0) & "' And 第二列 = '" & ps(1) & "' and 第三列 = '" & ps(2) & "'")
            If dr IsNot Nothing Then '如果在表A找到对应的行,则将此行的第四列值写入相关位置.
               
                 e.Form.DropDownBox.Value = dr("第四列") '这行例子是写入下拉窗口中的
             End If
     e.Form.DropDownBox.CloseDropdown()  '关闭下拉目录树
   
End If

 

我理解的是这样了,这样写的话 生成目录树时就按 第一 二  三列去生成   然后取值列用第四列

[此贴子已经被作者于2012-11-4 13:46:12编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/11/4 13:58:00 [只看该作者]

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
tr.BuildTree("表A","第一列|第二列|第三列")
Dim dr As DataRow
For Each nd As WinForm.TreeNode In tr.AllNodes
    If nd.AllNodes.Count = 0 Then
        dr = DataTables("表A").find("[第三列] = '" & nd.name & "'")
        If dr IsNot Nothing
            nd.text = dr("第四列")
        End If
    End If
Next

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