Foxtable(狐表)用户栏目专家坐堂 → BuildTree功能自动过滤了空值问题


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

主题:BuildTree功能自动过滤了空值问题

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/6 15:38:00 [显示全部帖子]

 你可以用sql语句,把空值替换成一个字符,如

 

select iif(第一列 is null, '空值', 第一列)

 

 然后再生成dt,再生成目录树。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/6 15:56:00 [显示全部帖子]

非递归,代码

 

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim Nd = tr.Nodes.Add("全部内容")

Dim dt As DataTable = DataTables("表a")
Dim cs As String = "第一列|第二列"
Dim nds As new List(Of WinForm.TreeNode)
For i As Integer = 0 To 3
    nds.Add(nd)
Next
For Each arys As String() In dt.GetValues(cs, "", cs.Replace("|", ","))
    Dim flag As Boolean = False
    For i As Integer = 0 To arys.Length - 1
        If nds(i+1).Name <> arys(i) OrElse flag Then
            flag = True
            nds(i+1) = nds(i).Nodes.Add(arys(i))
        End If
    Next
Next


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/6 17:56:00 [显示全部帖子]

 呃,你可以替换掉arys(i)的值,想怎么处理都行。

 

 关键代码 nds(i+1) = nds(i).Nodes.Add(arys(i))


 回到顶部