以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]自动生成树的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=129336) |
||||
-- 作者:xndd -- 发布时间:2018/12/26 14:11:00 -- [求助]自动生成树的问题 我有一张数据表,自动生成树,但是发现变成这样,原因是LB列用了表的数据字典,如何显示内容,而不是用值呢?
![]() ![]() [此贴子已经被作者于2018/12/26 14:11:40编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/12/26 14:22:00 -- 读取数据字典的值,循环目录树的节点,修改目录树节点值,即可
Dim dmp = Tables("表A").cols("第二列").DataMap |
||||
-- 作者:xndd -- 发布时间:2018/12/26 15:01:00 -- Dim dmp = Tables("数据字典表").cols("LB").DataMap
显示为空
![]() ![]() [此贴子已经被作者于2018/12/26 15:01:36编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/12/26 17:37:00 -- 如果是数值列,试试改成
Dim dmp = Tables("数据字典表").cols("LB").DataMap
|
||||
-- 作者:xndd -- 发布时间: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 |
||||
-- 作者:有点甜 -- 发布时间:2018/12/26 22:36:00 -- 那你的key显示什么?key的类型是数值还是字符?
或者,你做个对应的实例发上来测试。 |
||||
-- 作者:xndd -- 发布时间: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 |
||||
-- 作者:有点甜 -- 发布时间:2018/12/26 23:09:00 -- 做个例子发上来测试吧,你第一步肯定是不需要的。 |
||||
-- 作者:xndd -- 发布时间:2018/12/27 9:21:00 --
我发现我这样做有问题:点击公共可以展现;点击行政变成显示人事了。我循环体累计值有什么不对? 关键是效率地下啊。谢谢。麻烦甜版看看。 |
||||
-- 作者:有点甜 -- 发布时间:2018/12/27 9:39:00 -- \'自动生成树 Dim dmp = Tables("数据字典表").Cols("LB").DataMap |