以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]自己动手设计筛选树的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=177765)

--  作者:chnfo
--  发布时间:2022/6/2 17:29:00
--  [求助]自己动手设计筛选树的问题
自己动手设计筛选树中,用日期构建了一棵树


Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.CommandText = "Sel*ect Distinct Year(日期) As 年, Month(日期) As 月, 产品 From {订单}"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "年|月|产品")
trv.Nodes.Insert("显示所有行",0)

显示的结果是按年月升序排列的,如何才能降序排列(也就是最新的年月排在最前面)
如果用了 order by D DESC,就会提示distinct与order by 相冲突。如果把D加入到select 列里,又会跟distinct冲突

直接用日常工作-加载树-设置加载树,显示的效果是这样的,并没有按日期降序排列
图片点击可在新窗口打开查看
[此贴子已经被作者于2022/6/2 17:41:42编辑过]

--  作者:有点蓝
--  发布时间:2022/6/2 17:38:00
--  


语法:

BuildTree(DataTableName, Columns, Filter, Sort)

BuildTree(DataTable, Columns, Filter, Sort)

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

trv.BuildTree(dt, "年|月|产品","","年 desc,月 desc")

--  作者:chnfo
--  发布时间:2022/6/3 19:15:00
--  
为什么用代码可以,直接在日常工作-加载树-设置加载树那里,设置降序就不可以?
--  作者:狐狸爸爸
--  发布时间:2022/6/5 7:50:00
--  
一个是设置目录树节点的顺序,一个是设置数据是降序加载还是升序加载,不一样的