Foxtable(狐表)用户栏目专家坐堂 → [求助]自动生成树的问题


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

主题:[求助]自动生成树的问题

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


加好友 发短信
等级:二尾狐 帖子:523 积分:4379 威望:0 精华:0 注册:2014/11/26 15:23:00
[求助]自动生成树的问题  发帖心情 Post By:2018/12/26 14:11:00 [只看该作者]

我有一张数据表,自动生成树,但是发现变成这样,原因是LB列用了表的数据字典,如何显示内容,而不是用值呢?

 


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

 

 


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/12/26 14:11:40编辑过]

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


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

读取数据字典的值,循环目录树的节点,修改目录树节点值,即可

 

Dim dmp = Tables("表A").cols("第二列").DataMap
msgbox(dmp("1"))
msgbox(dmp("2"))


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


加好友 发短信
等级:二尾狐 帖子:523 积分:4379 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2018/12/26 15:01:00 [只看该作者]

Dim dmp = Tables("数据字典表").cols("LB").DataMap
MESSAGEBOX.Show(dmp("1"))

 

显示为空

 


图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/12/26 15:01:36编辑过]

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


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

如果是数值列,试试改成

 

Dim dmp = Tables("数据字典表").cols("LB").DataMap
MESSAGEBOX.Show(dmp(1))

 


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


加好友 发短信
等级:二尾狐 帖子:523 积分:4379 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2018/12/26 22:11:00 [只看该作者]

不行,只能这样了:
Dim obj = Tables("数据字典表").Cols("LB").DataMap
For Each key As object In obj.keys
    output.show(key & " " & obj(key))
Next


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


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

那你的key显示什么?key的类型是数值还是字符?

 

或者,你做个对应的实例发上来测试。


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


加好友 发短信
等级:二尾狐 帖子:523 积分:4379 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2018/12/26 22:45:00 [只看该作者]

这样实现了,感觉效率低下

'基础设置
Dim obj = Tables("数据字典表").Cols("LB").DataMap
Dim sjzdb1 As New List(Of String)
For Each key As object In obj.keys
    sjzdb1.add(obj(key))
Next
'自动生成树
Dim tv1 As WinForm.TreeView = e.Form.Controls("TreeView1")
tv1.BuildTree("数据字典表", "LB|FLMC")
'遍历目录树,替换节点值
Dim a As Integer
a = 0
For Each nd As Object In tv1.Nodes
    If String.Compare(cstr(nd.text),cstr(a),False) Then
        nd.text = sjzdb1(a)
        messagebox.Show(nd.text)
    End If
    a += 1
Next



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


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

做个例子发上来测试吧,你第一步肯定是不需要的。

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


加好友 发短信
等级:二尾狐 帖子:523 积分:4379 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2018/12/27 9:21:00 [只看该作者]

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

我发现我这样做有问题:点击公共可以展现;点击行政变成显示人事了。我循环体累计值有什么不对?

关键是效率地下啊。谢谢。麻烦甜版看看。


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


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

'自动生成树
Dim tv1 As WinForm.TreeView = e.Form.Controls("TreeView1")
tv1.BuildTree("数据字典表", "LB|FLMC")
'遍历目录树,替换节点值

Dim dmp = Tables("数据字典表").Cols("LB").DataMap
For Each nd As Object In tv1.Nodes
    nd.text = dmp(cdbl(nd.name))
Next


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