Foxtable(狐表)用户栏目专家坐堂 → [求助]加载树的年月节点按倒序排列(已解决)


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

主题:[求助]加载树的年月节点按倒序排列(已解决)

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]加载树的年月节点按倒序排列(已解决)  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/5/8 15:36:00 [只看该作者]

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

 

改为:

 

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


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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2012/5/8 15:43:00 [只看该作者]

谢谢狐爸老师的回复,此方案试过,节点还是顺序,没有变化。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/5/8 15:51:00 [只看该作者]

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

 

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

 


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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By: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)


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2012/5/9 9:08:00 [只看该作者]

完美实现理想效果,谢谢狐爸老师的指教!!

 回到顶部