以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于筛选目录树的一点问题~~跪求大神指导~...标题长才看的到~~~  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=20275)

--  作者:轩辕小剑
--  发布时间:2012/6/3 11:36:00
--  关于筛选目录树的一点问题~~跪求大神指导~...标题长才看的到~~~
 

1、窗口的AfterLoad事件代码改为:

Dim cmd As New SQLCommand
Dim
dt As DataTable
cmd
.CommandText = "SELECT DISTINCT Year(日期) As , Month(日期) As , 产品 From {订单}"
dt
= cmd.ExecuteReader()
Dim
trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv
.BuildTree(dt, "年|月|产品")

2、目录树的NodeMouseDoubleClick事件代码改为:

Dim Value()As String
Dim
Filter As String
Dim
d1 As Date
Dim
d2 As Date
Value = e.Node.FullPath.Split("\\")

Select Case
e.Node.Level
    Case
0
        Dim
y As Integer = value(0)
        d1
= New Date(y,1,1) \'取得该年的第一天
       
d2 = new Date(y,12,31) \'取得该年的最后一天
       
Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "#"
    Case
1
        Dim
y As Integer = value(0)
        Dim
m As Integer = value(1)
        d1
= New Date(y, m, 1) \'取得该月的第一天
       
d2 = new Date(y, m, Date.DaysInMonth(y,m)) \'取得该月的最后一天
       
Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "#"
    Case
2
        Dim
y As Integer = value(0)
        Dim
m As Integer = value(1)
        d1
= New Date(y, m, 1) \'取得该月的第一天
       
d2 = new Date(y, m, Date.DaysInMonth(y,m)) \'取得该月的最后一天
       
Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "# And 产品 = \'" & Value(2) & "\'"
End Select
Tables(
"订单").Filter = Filter

 

以上代码是帮助里面的筛选目录树,如果在该目录树的产品的后面再加一级节点,也就是实现年--月--产品---XX   应该怎么设置代码呢? 跪求帮助

[此贴子已经被作者于2012-6-3 18:30:06编辑过]

--  作者:xuezxz
--  发布时间:2012/6/3 13:42:00
--  

不占地方了,也是筛选树的问题,放一起了

能实现下图的功能吗?单独将一列筛选出来,可以自由组合筛选

图片点击可在新窗口打开查看


--  作者:轩辕小剑
--  发布时间:2012/6/3 17:10:00
--  
0...你这个我知道的 更新后的筛选有多个条件筛选的~~~帮助有的~~你可以去看看~
--  作者:轩辕小剑
--  发布时间:2012/6/3 18:34:00
--  
0....高手都那里去~了 吃饭了么~~求帮助啊~求帮助~~
--  作者:jianjingmaoyi
--  发布时间:2012/6/3 20:26:00
--  
Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "# And 产品 = \'" & Value(2) & "\' And 产品 =\'" & Value(3) & "\'"
--  作者:轩辕小剑
--  发布时间:2012/6/3 21:58:00
--  
以下是引用jianjingmaoyi在2012-6-3 20:26:00的发言:
Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "# And 产品 = \'" & Value(2) & "\' And 产品 =\'" & Value(3) & "\'"

........5555拜谢啊~~~虽然还不知道对不对~~但是能帮我就很感谢了~~恩人~~献上菊花一枚~~图片点击可在新窗口打开查看


--  作者:程兴刚
--  发布时间:2012/6/4 12:34:00
--  
以下是引用轩辕小剑在2012-6-3 21:58:00的发言:

........5555拜谢啊~~~虽然还不知道对不对~~但是能帮我就很感谢了~~恩人~~献上菊花一枚~~图片点击可在新窗口打开查看

晕,干嘛不是玫瑰花呀!


--  作者:轩辕小剑
--  发布时间:2012/6/4 18:56:00
--  
e  语法不对啊~~
--  作者:狐狸爸爸
--  发布时间:2012/6/4 19:03:00
--  
1、窗口的AfterLoad事件代码改为:
 
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.CommandText = "SELECT DISTINCT Year(日期) As 年, Month(日期) As 月, 产品, XX From {订单}"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "年|月|产品|XX")

2、目录树的NodeMouseDoubleClick事件代码改为
 
Dim Value()As String
Dim Filter As String
Dim d1 As Date
Dim d2 As Date
Value = e.Node.FullPath.Split("\\")
Select Case e.Node.Level
    Case 0
        Dim y As Integer = value(0)
        d1 = New Date(y,1,1) \'取得该年的第一天
        d2 = new Date(y,12,31) \'取得该年的最后一天
        Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "#"
    Case 1
        Dim y As Integer = value(0)
        Dim m As Integer = value(1)
        d1 = New Date(y, m, 1) \'取得该月的第一天
        d2 = new Date(y, m, Date.DaysInMonth(y,m)) \'取得该月的最后一天
        Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "#"
    Case 2
        Dim y As Integer = value(0)
        Dim m As Integer = value(1)
        d1 = New Date(y, m, 1) \'取得该月的第一天
        d2 = new Date(y, m, Date.DaysInMonth(y,m)) \'取得该月的最后一天
        Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "# And 产品 = \'" & Value(2) & "\'"
   Case 3
        Dim y As Integer = value(0)
        Dim m As Integer = value(1)
        d1 = New Date(y, m, 1) \'取得该月的第一天
        d2 = new Date(y, m, Date.DaysInMonth(y,m)) \'取得该月的最后一天
        Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "# And 产品 = \'" & Value(2) & "\' And XX = \'" & Value(3) & "\'"
End Select
Tables("订单").Filter = Filter
[此贴子已经被作者于2012-6-4 19:03:44编辑过]

--  作者:轩辕小剑
--  发布时间:2012/6/4 19:03:00
--  
以下是引用jianjingmaoyi在2012-6-3 20:26:00的发言:
Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "# And 产品 = \'" & Value(2) & "\' And 产品 =\'" & Value(3) & "\'"

Dim cmd As New SQLCommand
Dim
dt As DataTable
cmd
.CommandText = "SELECT DISTINCT Year(日期) As , Month(日期) As , 产品 From {订单}"
dt
= cmd.ExecuteReader()
Dim
trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv
.BuildTree(dt, "年|月|产品")

 这个语法不需要改么~~