以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  目录树双击事件代码求纠正(已解决),还请帮忙优化一下 谢谢  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=54997)

--  作者:李孝春
--  发布时间:2014/8/8 15:43:00
--  目录树双击事件代码求纠正(已解决),还请帮忙优化一下 谢谢
红色部分求纠正显示筛选条件为按日进行


代码如下:


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 day As Integer = e.Node.DataRow("日")
    Dim Product As String = e.Node.DataRow("组别")
    Dim yewurenyuan 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 & "# "         
    End Select
End If
Tables("订单编码").Filter = Filter



解决代码

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 day As Integer = e.Node.DataRow("日")
    Dim Product As String = e.Node.DataRow("组别")
    Dim yewurenyuan As String = e.Node.DataRow("业务人员")
    Dim nd  As New Date(year,month,day)
    
    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
            filter = "录入时间 = #" & nd & "#"
        Case 3
            Filter = "录入时间 = #" & nd & "# And 组别 = \'" & Product & "\'"
        Case 4
            Filter = "录入时间 = #" & nd & "# And 组别 = \'" & Product & "\' And 业务人员 = \'" & yewurenyuan & "\'"
    End Select
End If
Tables("订单编码").Filter = Filter
[此贴子已经被作者于2014-8-8 15:52:21编辑过]

--  作者:有点甜
--  发布时间:2014/8/8 16:59:00
--  
 没有哪里需要优化的,只能这样写了。