Foxtable(狐表)用户栏目专家坐堂 → 请帮忙在这样的目录树里面加上双击节点,将数据录入另一个表的列中


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

主题:请帮忙在这样的目录树里面加上双击节点,将数据录入另一个表的列中

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


加好友 发短信
等级:小狐 帖子:359 积分:3403 威望:0 精华:0 注册:2011/8/2 20:53:00
请帮忙在这样的目录树里面加上双击节点,将数据录入另一个表的列中  发帖心情 Post By:2011/9/10 18:12:00 [只看该作者]

需要实现:双击节点,将该数据录入到表A的第一列。

 

Dim tr As WinForm.TreeView = Forms("参数设置").Controls("TreeView1")
Dim nd0,nd1,nd2,nd3,nd4,nd5 As WinForm.TreeNode
Dim fs As Integer
tr.Nodes.Clear   '清空原来的节点::::::::::
For Each dr As DataRow In DataTables("基础设置").Select("","id")
    If dr("id") <> "" Then
        fs = dr("节点")
        Select Case fs
 Case 0
                nd0 = tr.Nodes.Add(dr("id").trim()  ,dr("名称"))
            Case 1
                nd1 = nd0.Nodes.Add(dr("id").trim() ,dr("名称"))
            Case 2
                nd2 = nd1.Nodes.Add(dr("id").trim() ,dr("名称"))
            Case 3
                nd3 = nd2.Nodes.Add(dr("id").trim() ,dr("名称"))
            Case 4
                nd4 = nd3.Nodes.Add(dr("id").trim() ,dr("名称"))
            Case 5
                nd5 = nd4.Nodes.Add(dr("id").trim() ,dr("名称"))
          
        End Select
    End If
Next

 

如果能够这样会更好:假设根节点下有五层子节点(子节点分别为:1、2、3、4、5),假设双击节点“1”,将名称录入表A第一列中,双击节点“2”,则将名称录入到第二列,同时也将上级节点1的名称录入到第一列中,


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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2011/9/10 19:18:00 [只看该作者]

给个实例,不会要大家帮你做吧,懒虫哈···

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


加好友 发短信
等级:小狐 帖子:359 积分:3403 威望:0 精华:0 注册:2011/8/2 20:53:00
  发帖心情 Post By:2011/9/10 20:40:00 [只看该作者]

例子里,产品表通过目录树录入“名称”的数据,ID能够将这个产品的每层上级ID以' \ '符号隔开;例如:001\001001\001001001

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

 ,

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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2011/9/10 22:17:00 [只看该作者]

NodeMouseDoubleClick :

Dim tr As WinForm.TreeView = Forms("窗口1").Controls("TreeView1")
Dim nd As WinForm.TreeNode = tr.SelectedNode
Dim fts()As String
Dim n As Integer
Dim s As String
fts = nd.FullPath.Split("\")
Dim dr As DataRow
dr = DataTables("产品").AddNew()
dr("名称") = fts(fts.length-1)
For Each ft As String In fts
    s = s & left(nd.name,3*(n+1)) & "\"

n = n + 1
Next
dr("ID") =s.trim("\")


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


加好友 发短信
等级:小狐 帖子:359 积分:3403 威望:0 精华:0 注册:2011/8/2 20:53:00
  发帖心情 Post By:2011/9/11 0:29:00 [只看该作者]

非常感谢,问题已经解决


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


加好友 发短信
等级:小狐 帖子:359 积分:3403 威望:0 精华:0 注册:2011/8/2 20:53:00
  发帖心情 Post By:2011/9/11 11:21:00 [只看该作者]

你好,你帮我解决了问题,非常感谢!

 

再次请教你,目前的OID能通过代码达到:001/001001…效果,假设001代表的名称是“北京”001001代表的是“朝阳区”;当我以后需要对这个ID进行识别的话,能否做到:在第一列输入001/001001就能在第二列显示出北京/朝阳区?如何做到?


 回到顶部