Foxtable(狐表)用户栏目专家坐堂 → 岗位目录树生成


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

主题:岗位目录树生成

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


加好友 发短信
等级:三尾狐 帖子:647 积分:5256 威望:0 精华:0 注册:2018/5/19 22:27:00
岗位目录树生成  发帖心情 Post By:2020/9/11 12:05:00 [只看该作者]

老师我想实现,如下面代码;用BuildTree怎么实现在lst1的行生成目录树?

trv.BuildTree("kframe", "fruit|work" )


Dim lst1 As New List(of DataRow)   ‘找到符合条件的要生成目录数的行;
For Each v As String In vs
    Dim dr As DataRow = DataTables("kframe").Find("kmitemid = " & v)
    If dr IsNot Nothing Then
        lst1.Add(dr)
    End If
Next

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


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/11 13:51:00 [只看该作者]

BuildTree用不了,只能手工添加节点,类似:http://www.foxtable.com/webhelp/topics/2244.htm

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


加好友 发短信
等级:三尾狐 帖子:647 积分:5256 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/9/11 14:38:00 [只看该作者]

老师我这边如果work为空,则生成根节点,否则生成对应根节点的二级节点。代码如何修改?
还有个想问下,删除所有节点重新生产目录树的代码是啥?

Dim nd As WinForm.TreeNode
For Each dr As DataRow In lst1 
    If dr.Isnull("work")
     trv.Nodes.Add(dr("fruit")) '增加根节点
    Else
     nd.Nodes.Add(dr("work"))  '增加二级节点
    End If
Next

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


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/11 14:41:00 [只看该作者]

多层节点的参考递归用法:http://www.foxtable.com/webhelp/topics/2416.htm

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


加好友 发短信
等级:三尾狐 帖子:647 积分:5256 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/9/11 15:54:00 [只看该作者]

老师我就是在lst1的行中生产目录树,搞了好久,没弄出来啊?求助
通过表kframe中lst1,列fruit|work生成目录树,
trv.BuildTree("kframe", "fruit|work" )
Dim lst1 As New List(of DataRow)   ‘找到符合条件的要生成目录数的行;
For Each v As String In vs
    Dim dr As DataRow = DataTables("kframe").Find("kmitemid = " & v)
    If dr IsNot Nothing Then
        lst1.Add(dr)
    End If
Next
这个是我生成目录树的想法,总共是二级目录树  fruit是根节点。一行数据中,如果work是空值,那么根节点名称为列fruit的值,如果work不为空,work为对应fruit的子节点
Dim nd As WinForm.TreeNode
For Each dr As DataRow In lst1 
    If dr.Isnull("work")
     trv.Nodes.Add(dr("fruit")) '增加根节点
    Else
     nd.Nodes.Add(dr("work"))  '增加二级节点
    End If
Next

[此贴子已经被作者于2020/9/11 15:59:53编辑过]

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


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/11 16:01:00 [只看该作者]

看不懂根节点在哪里,请上传实例说明

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


加好友 发短信
等级:三尾狐 帖子:647 积分:5256 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/9/11 16:14:00 [只看该作者]

老师,用的外部数据。你看下图片是表kframe,库工作项ID就是代码里面的kmitemid,结果—fruit 关键过程——work
我就用Dim lst1 As New List(of DataRow) lst1是表kframe符合生成目录树条件的行;

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


[此贴子已经被作者于2020/9/11 16:14:23编辑过]

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


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/11 16:58:00 [只看该作者]

直接trv.BuildTree("kframe", "fruit|work" )就行了,搞那么麻烦干啥。为什么要搞个集合?

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


加好友 发短信
等级:三尾狐 帖子:647 积分:5256 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2020/9/11 17:03:00 [只看该作者]

我晕,就是这个集合把我难住了。因为我这边只需要目录树显示集合内的目录树,否则目录树数据太大,我们这边看目录树太麻烦了

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


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/11 17:20:00 [只看该作者]

加上条件咯

BuildTree

根据指定的数据表内容生成目录树节点。


语法:

BuildTree(DataTableName, Columns, Filter, Sort)

BuildTree(DataTable, Columns, Filter, Sort)

DataTableName:数据表名
DataTable:数据表
Columns:指定数据列,不同的列之间用符号“|”隔开,例如:产品|客户|雇员”
Filter:可选参数,指定过滤条件,请参考表达式的运算符和函数 和 条件表达式
Sort:可选参数,设置排序,默认根据ColumnName参数指定的列排序

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