Foxtable(狐表)用户栏目专家坐堂 → [求助]sql筛选树日期加载?


  共有3328人关注过本帖树形打印复制链接

主题:[求助]sql筛选树日期加载?

帅哥哟,离线,有人找我吗?
manyifuwu
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
[求助]sql筛选树日期加载?  发帖心情 Post By:2019/9/10 17:20: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

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

 回到顶部
帅哥哟,离线,有人找我吗?
manyifuwu
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
  发帖心情 Post By:2019/9/10 17:21:00 [只看该作者]

问题1、日期如何实现只显示 加载60天内的数据。  2、 只有年,和月   怎么多增加个 日 节点。


 回到顶部
帅哥哟,离线,有人找我吗?
manyifuwu
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
  发帖心情 Post By:2019/9/10 17:22:00 [只看该作者]


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



 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110746 积分:563656 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:500 积分:5409 威望:0 精华:0 注册:2009/2/5 13:09:00
  发帖心情 Post By: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   这里怎么改呢?双击产品节点,不生效


用鼠标双击节点后执行。


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110746 积分:563656 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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 & "'"

 回到顶部