以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]利用外部数据表创建筛选树的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=60440)

--  作者:maoshandao
--  发布时间:2014/11/25 9:19: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, "年|月|产品")
trv
.Nodes.Insert("显示所有行",0)

上面的代码首先利用SQLCommand生成一个临时表,然后根据这个临时表生成目录
临时表包括年、月、产品三列,由于Select语句加上了Distinct关键词,所以提取出来的年、月、日是不重复的。

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

Dim Filter As String = ""
If
 e.node.Name <> "显示所有行" Then 
    
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(Year, Month, 1
\'
取得该月的第一天
            d2 = new Date(Year, Month, Date.DaysInMonth(Year,Month)) 
\'
取得该月的最后一天
            Filter = 
"
日期 >= #" & d1 & "# And 日期 <= #" & d2 & "#"
        Case 2
            d1 = New Date(Year, Month, 1
\'
取得该月的第一天
            d2 = new Date(Year, Month, Date.DaysInMonth(Year,Month)) 
\'
取得该月的最后一天
            
Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "# And 产品 = \'" & Product & "\'"
    End 
Select

End
 If
Tables("订单").Filter = Filter


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


这个范例对内部数据表有效,怎么改成对外部数据表有效


--  作者:有点甜
--  发布时间:2014/11/25 9:20:00
--  

 设置一下数据源即可

 

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

 


--  作者:maoshandao
--  发布时间:2014/11/25 10:00:00
--  
原来这么简单,谢谢