Foxtable(狐表)用户栏目专家坐堂 → [求助]目录树问题


  共有2756人关注过本帖平板打印复制链接

主题:[求助]目录树问题

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


加好友 发短信
等级:一尾狐 帖子:463 积分:4163 威望:0 精华:0 注册:2011/4/5 16:54:00
[求助]目录树问题  发帖心情 Post By:2014/9/15 15:30:00 [只看该作者]

请教个关于外部数据表用递归函数生成目录树的问题:

有没有办法在不添加外部数据表的情况下,用递归函数生成目录树?

我的自定义函数AddChildren内容如下:
Dim nd As WinForm.TreeNode = args(0)
Dim dt As DataTable = args(1)
Dim drs As List(of DataRow)
drs = dt.Select("[parentid] = '" & nd.name & "'")
For Each dr As DataRow In drs
    Dim cd As Winform.TreeNode = nd.Nodes.Add(dr("objname"),dr("objjc"))
    Functions.Execute("AddChildren",cd,dt)
Next

自定义函数“数据提取”的内容如下:
'做一个通用的数据提取函数

Dim sql As String = Args(0)  'sql语句

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = sql
dt = cmd.ExecuteReader()
Return dt


下拉窗口代码如下:
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode

Dim sql As String = "Select a.objid, a.objjc, (Select Count(objid) FROM D020 WHERE parentid = a.objid) As 下级数 " _
 &  " FROM D020 As a WHERE a.objtype = 1 "

Dim dt As DataTable = Functions.Execute("wis数据提取",sql)

tr.StopRedraw()
tr.Nodes.Clear
'tr.Nodes.Add("全部")  '这么大的数据量,就不要加全部了
For Each dr As DataRow In dt.datarows
     nd = tr.Nodes.Add(dr("objid"),dr("objjc"))
     If dr("下级数") > 0 Then
        nd.Nodes.Add("空")
    End If  
Next
tr.ResumeRedraw()
[此贴子已经被作者于2014-9-15 15:38:46编辑过]

 回到顶部
总数 23 1 2 3 下一页