以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]sql筛选树日期加载?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=140643)

--  作者:manyifuwu
--  发布时间:2019/9/10 17:20:00
--  [求助]sql筛选树日期加载?

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 day 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

[此贴子已经被作者于2019/9/10 17:24:03编辑过]

--  作者:manyifuwu
--  发布时间:2019/9/10 17:21:00
--  
问题1、日期如何实现只显示 加载60天内的数据。  2、 只有年,和月   怎么多增加个 日 节点。


--  作者:manyifuwu
--  发布时间:2019/9/10 17:22:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建文本文档 (2).txt



--  作者:有点蓝
--  发布时间:2019/9/10 17:29:00
--  
Dim cmd As New s  q  l Command
Dim dt As DataTable
cmd.CommandText = "Select Distinct Year(日期) As 年, Month(日期) As 月,day(日期) as 日, 产品 From {订单} where 日期 >#" & date.today.adddays(-60) & "#"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "年|月||产品")
trv.Nodes.Insert("显示所有行",0)


--  作者:manyifuwu
--  发布时间:2019/9/10 18:39:00
--  

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 day 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


NodeMouseDoubleClick   这里怎么改呢?双击产品节点,不生效


用鼠标双击节点后执行。


--  作者:有点蓝
--  发布时间:2019/9/10 20:04:00
--  
        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, day)

            Filter = 
"
日期 = #" & d1 & "#"
        Case 3
            d1 = New Date(Year, Month, day
\'
取得该月的第一天
            
Filter = "日期 = #" & d1 & "# And 产品 = \'" & Product & "\'"