以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]加载树的年月节点按倒序排列(已解决)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=19386)

--  作者:yyzlxc
--  发布时间:2012/5/8 15:35:00
--  [求助]加载树的年月节点按倒序排列(已解决)

用SQL语句设计的加载树,希望“年月”按倒序排列,代码应该如何修改,请各位老师指教,谢谢!!

 

窗口的AfterLod事件代码设为:
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C  \'外部数据源
cmd.CommandText = "SELECT DISTINCT 年月,单位 From {数据汇总}"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildDataTree(dt, "","年月", "单位")
trv.Nodes.Insert("加载所有数据",0)


目录树的NodeMouseDoubleClick事件设为:
Dim Filter As String
If e.Node.Text = "加载所有数据" Then
    Filter = ""
Else
    Dim Value() As String
    Value = e.Node.FullPath.Split("\\")
    Select Case e.Node.Level
        Case 0
            Filter ="[年月] = \'" & Value(0) & "\'"
        Case 1
            Filter ="[年月] = \'" & Value(0) & "\' And [单位] = \'" & Value(1) & "\'"
    End Select
End If
DataTables("数据汇总").LoadFilter = Filter
DataTables("数据汇总").Load()

[此贴子已经被作者于2012-5-9 9:08:38编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/5/8 15:36:00
--  

cmd.CommandText = "SELECT DISTINCT 年月,单位 From {数据汇总}"

 

改为:

 

cmd.CommandText = "SELECT DISTINCT 年月,单位 From {数据汇总} Order by 年月"


--  作者:yyzlxc
--  发布时间:2012/5/8 15:43:00
--  
谢谢狐爸老师的回复,此方案试过,节点还是顺序,没有变化。
--  作者:狐狸爸爸
--  发布时间:2012/5/8 15:51:00
--  

换个方法,新的BuildTree可以指定排序参数:

 

http://www.foxtable.com/help/topics/0893.htm

 


--  作者:yyzlxc
--  发布时间:2012/5/9 8:59:00
--  

谢谢狐爸老师的指教,在“数据汇总”表全部加载的前提下,用最后三条代码,可以实现加载树节点倒序;如何用ExecuteReader方法直接从后台提取完整的年月和单位数据,还请狐爸老师指教,谢谢!!

 

\'Dim cmd As New SQLCommand
\'Dim dt As DataTable
\'cmd.C  \'外部数据源
\'cmd.CommandText = "SELECT DISTINCT 年月,单位 From {数据汇总}"
\'dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("数据汇总", "年月|单位","","年月 DESC,单位")
trv.Nodes.Insert("加载所有数据",0)


--  作者:狐狸爸爸
--  发布时间:2012/5/9 9:01:00
--  
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C \'外部数据源
cmd.CommandText = "SELECT DISTINCT 年月,单位 From {数据汇总}"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "年月|单位","","年月 DESC,单位")
trv.Nodes.Insert("加载所有数据",0

--  作者:yyzlxc
--  发布时间:2012/5/9 9:08:00
--  
完美实现理想效果,谢谢狐爸老师的指教!!