Foxtable(狐表)用户栏目专家坐堂 → 动态生成目录树时,如何更改节点标题


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

主题:动态生成目录树时,如何更改节点标题

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


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
动态生成目录树时,如何更改节点标题  发帖心情 Post By:2012/11/14 5:09:00 [只看该作者]

动态生成目录树时,如休更改节点标题,如图:
图片点击可在新窗口打开查看此主题相关图片如下:目录树结点显示标题-20121114.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树节点标题显示问题.rar


[此贴子已经被作者于2012-11-14 5:12:42编辑过]

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


加好友 发短信
等级:小狐 帖子:365 积分:2693 威望:0 精华:1 注册:2011/11/25 7:55:00
  发帖心情 Post By:2012/11/14 8:04:00 [只看该作者]

楼主用的是外部数据库?

看图片貌似是动态加载树,按理说你的要求需要编码用目录树来实现

 

Dim cmd As New SQLCommand
cmd.Connection Name = "JRRJ"
Dim dt As DataTable
cmd.CommandText = "Select a.客户id,a.销售单号,b.客户名称 From {销售订单} a,客户资料 b where a.客户id = b.客户id and a.订单日期 = '" & d1 & "' "
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.Nodes.Add("加载所有数据",0)
For Each dr As DataRow In dt.DataRows
    Dim tnd As WinForm.TreeNode = trv.Nodes.Add(dr("客户id"),dr("客户id") & dr("客户名称"))
    For Each trvstr As String In dt.GetUniqueValues("客户id = '"& tnd.name &"'","销售单号")
        tnd.Nodes.Add(trvstr,trvstr)
    Next
Next

[此贴子已经被作者于2012-11-14 8:06:50编辑过]

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


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

还有一个简单且通用的办法:

 

http://www.foxtable.com/help/topics/2689.htm

http://www.foxtable.com/help/topics/2690.htm

 

'按常规生成目录树

For Each nd AS WinForm.TreeNode In Trv.AllNodes

    If  nd.DataRow IsNot Nothing Then

          nd.Text = nd.Datarow("客户ID") & "客户名称"

    End If

Next

 


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/14 9:16:00 [只看该作者]

 在二楼的基础上改的。狐爸的方式不适合不加载的外部表。

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


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


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
  发帖心情 Post By:2012/11/14 9:43:00 [只看该作者]

参考资料lin_hailun与sgs所提示方法在:ComboBox1 的SelectedIndexChanged事件中加入:
Dim cmd As New SQLCommand
cmd.Connection Name = "JRRJ"
Dim dt As DataTable
cmd.CommandText = "Select a.客户id,a.销售单号,b.客户名称 From {销售订单} a,客户资料 b where a.客户id = b.客户id and a.订单日期 = '" & d1 & "' "
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.Nodes.Add("加载所有数据",0)
For Each dr As DataRow In dt.DataRows
    Dim tnd As WinForm.TreeNode = trv.Nodes.Add(dr("客户id"),dr("客户id") & dr("客户名称"))
    For Each trvstr As String In dt.GetUniqueValues("客户id = '"& tnd.name &"'","销售单号")
        tnd.Nodes.Add(trvstr,trvstr)
    Next
图片点击可在新窗口打开查看此主题相关图片如下:目录树结点显示标题-20121114-02.jpg
图片点击可在新窗口打开查看

Next
在有重复记录,如下图:


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


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
  发帖心情 Post By:2012/11/14 9:51:00 [只看该作者]

根据狐爸方法:

For Each nd AS WinForm.TreeNode In Trv.AllNodes

    If  nd.DataRow IsNot Nothing Then

        if nd.AllNodes.Count = 0 then

          nd.Text = nd.Datarow("客户ID") & nd.Datarow("客户名称")

       end if 

    End If

Next

如下图:



图片点击可在新窗口打开查看此主题相关图片如下:目录树结点显示标题-20121114-03.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2012-11-14 9:51:41编辑过]

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/14 9:52:00 [只看该作者]

 清除原先的节点

trv.Nodes.Clear

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


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
  发帖心情 Post By:2012/11/14 10:00:00 [只看该作者]

5楼处理 方法中加入清除原先的节点后,客户还是那样重复的

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


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
  发帖心情 Post By:2012/11/14 10:06:00 [只看该作者]

http://www.foxtable.com/help/topics/0888.htm


有如下处理方法,这个方法在这里在怎样用


在窗口中插入一个、一个按钮,将按钮的Click事件代码设为:

Dim tr As WinForm.TreeView
Dim
 nd As WinForm.TreeNode
tr = Forms(
"窗口1").Controls("TreeView1")
nd = Tr.Nodes.Add(
"Root1","根节点一")
nd.Nodes.Add(
"Sub1","子节点一")
nd.Nodes.Add(
"Sub2","子节点二")
nd = Tr.Nodes.Add(
"Root2","根节点二")
nd.Nodes.Add(
"Sub3","子节点三")
nd.Nodes.Add(
"Sub4","子节点四")

运行时单击按钮,会生成


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


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


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