以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]目录树疑问  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99020)

--  作者:大米zei乖
--  发布时间:2017/4/11 10:24:00
--  [求助]目录树疑问
求助:以下代码是按照年月产品顺序筛选目录树的,如果我要按照年-产品-月的顺序筛选应该怎么改啊,谢谢

窗口代码:
\'首先生成统计表
Dim
 dt As DataTable
Dim
 b As New GroupTableBuilder("统计表1",DataTables("订单"))
b
.Groups.AddDef("日期",DateGroupEnum.Year,"年")
b
.Groups.AddDef("日期",DateGroupEnum.Month,"")
b
.Groups.AddDef("产品")
b
.Totals.AddDef("客户",AggregateEnum.Count,"订单数") \'根据客户列来统计记录数,也就是订单数
dt
 = b.Build(True) \'参数设置为True,生成一个临时表,不在主界面显示
\'然后根据统计表生成目录树

Dim
 trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv
.BuildTree(dt"||产品")
trv
.StopRedraw
For
 Each nd As WinForm.TreeNode In trv.AllNodes
    
Dim Year As Integer = nd.DataRow("")
    
Dim Month As Integer = nd.DataRow("")
    
Dim Product As String = nd.DataRow("产品")
    
Select Case nd.Level
        
Case 0
            
nd.Text = nd.text & "(" & dt.Compute("Sum(订单数)"," = " & Year& ")"
        
Case 1
            
nd.Text = nd.text & "(" & dt.Compute("Sum(订单数)"," = " & Year & " And  = " & Month& ")"
        
Case 2
            
nd.Text = nd.text & "(" & nd.DataRow("订单数"& ")"
    
End Select
Next

trv
.Nodes.Insert("显示所有行","显示所有行(" & dt.Compute("Sum(订单数)"& "条)",0)
trv
.ResumeRedraw

目录树代码:
Dim Filter As String = ""
If 
e.node.Name <> "显示所有行" Then \'要用Name属性,不能用Text属性
    
Dim d1 As Date
    Dim 
d2 As Date
    Dim 
Year As Integer = e.Node.DataRow("")
    Dim 
Month As Integer = e.Node.DataRow("")
    Dim 
Product As String = e.Node.DataRow("产品")
    Select Case 
e.Node.Level
        Case 
0
            
d1 = New Date(Year,1,1\'取得该年的第一天
            
d2 = new Date(Year,12,31\'取得该年的最后一天
            
Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "#"
        Case 
1
            
d1 = New Date(YearMonth1\'取得该月的第一天
            
d2 = new Date(YearMonthDate.DaysInMonth(Year,Month)) \'取得该月的最后一天
            
Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "#"
        Case 
2
            
d1 = New Date(YearMonth1\'取得该月的第一天
            
d2 = new Date(YearMonthDate.DaysInMonth(Year,Month)) \'取得该月的最后一天
            
Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "# And 产品 = \'" & Product & "\'"
    End Select
End If
Tables(
"订单").Filter = Filter

--  作者:有点色
--  发布时间:2017/4/11 10:49:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统计筛选树.table


--  作者:大米zei乖
--  发布时间:2017/4/11 11:11:00
--  
这个我知道,我就是想换个顺序,把产品放在月前面,刚开始我自己搞了下,结果统计出来的订单数乱七八糟的。。。。
--  作者:有点色
--  发布时间:2017/4/11 11:26:00
--  
认认真真看2楼项目,就是你要的。
--  作者:大米zei乖
--  发布时间:2017/4/11 11:37:00
--  
2楼的项目打不开,提示版本过高,我用的是2016版的
2楼的项目和CaseStudy里的是统计筛选树是一样的吗?

--  作者:有点色
--  发布时间:2017/4/11 12:00:00
--  
以下是引用大米zei乖在2017/4/11 11:37:00的发言:
2楼的项目打不开,提示版本过高,我用的是2016版的
2楼的项目和CaseStudy里的是统计筛选树是一样的吗?

 

你可以去下载最新的版本,升级到最新版。

 

代码有修改,稍微修改一些而已,你可以打开后对比。


--  作者:大米zei乖
--  发布时间:2017/4/11 12:32:00
--  
嗯,好的,谢谢啊,我再去试试看
--  作者:大米zei乖
--  发布时间:2017/4/11 13:46:00
--  
@有点色,可以了,谢谢啊
--  作者:大米zei乖
--  发布时间:2017/4/11 14:45:00
--  
@有点色
刚开始没问题,但是我调整了窗口的布局之后就出问题了,现在我的订单表 和 窗口"订单表" 都有问题,订单表变成空白的,窗口里的表绑定到订单表之后就会出现问题
开发者密码dq888

--  作者:大米zei乖
--  发布时间:2017/4/11 14:47:00
--  

项目

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:数据管理系统.rar