以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于根据日期形成目录树的问题?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=62201)

--  作者:lyfxybc
--  发布时间:2014/12/27 12:40:00
--  关于根据日期形成目录树的问题?

关于根据日期形成目录树的问题?

日期按每月23日-下月22日为一个月时,


图片点击可在新窗口打开查看此主题相关图片如下:1.bmp
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.bmp
图片点击可在新窗口打开查看
图1,按“日期”列形成的目录树,月份按1-12数字大小排列(好看)

图2,按“月”列形成的目录树,月份按字符先后顺序排列(不好看),但能用

 

点击节点查询时,代码是一样的。但不能按日期的月查询,只能按日期计算出来的月,来按该“月”列查询

如按日期2012-12-23查询是查2012-12-23日的数据,

如按计算出来的“月”查询:2012-12-23是2013年1月23日第一季度的数据

问题是当日期按每月23日-下月22日为一个月时,按图1形成的目录树多出了最开始的几天日期即11月份的23-30日几天,查询时无数据(根本不存在),如何取消

[此贴子已经被作者于2014-12-27 12:55:53编辑过]

--  作者:Bin
--  发布时间:2014/12/27 13:51:00
--  
增加一个辅助数值列作为排序,再依据这个列作为排序生成目录树.
--  作者:lyfxybc
--  发布时间:2014/12/30 19:39:00
--  

谢谢,

 

利用下列方法就不用单独在表中增加辅助列了

\'首先生成统计表
Dim dt As DataTable
Dim b As New GroupTableBuilder("统计表1",DataTables("坯布输入"))
b.Groups.AddDef("年","年1")  ‘把年,月,日列改为年1,月1,日1列,都为字符列
b.Groups.AddDef("月","月1")
b.Groups.AddDef("日","日1")
dt = b.Build(False)

\'然后根据统计表生成目录树
With dt.DataCols  

    .Add("年",Gettype(Integer),"[年1]") ’新添加年,月,日列,把年1,月1,日1的字符值转换成数值。
    .Add("月",Gettype(Integer),"[月1]")
    .Add("日",Gettype(Integer),"[日1]")
End With
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "年|月|日")

 

效果如下

 


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2014-12-30 19:40:53编辑过]