以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  目录树多种显示  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192628)

--  作者:15666282205
--  发布时间:2024/7/8 10:59:00
--  目录树多种显示
老师,目录树首先按“类别“显示,点击节点显示表的内容,现在加了一个按钮,转换为按日期显示,可是点击节点的代码就报错了。怎么设置一下,如果原来的代码不能运行,则运行另一组代码,请您指导,下面是两组代码,要解决怎么自动转换的问题。

按“类别”选择的代码:

Dim Filter As String = ""
If e.node.Name <> "所有行" Then \'要用Name属性,不能用Text属性
    
    Dim Product1 As String = e.Node.DataRow("状态")
    Dim Product2 As String = e.Node.DataRow("类别")
    
    Select Case e.Node.Level
        Case 0
            Filter = "[类别] = \'" & e.Node.DataRow("类别") & "\'"
        Case 1
            Filter = "[类别] = \'" & e.Node.DataRow("类别") & "\'And 状态 = \'" & Product1 & "\'"
            
    End Select
End If
DataTables("生产计划表").LoadFilter = Filter
DataTables("生产计划表").Load()

如果上面的代码不能正常运行,则运行下面的代码。下面是按日期选择的代码(不全,代表实际的代码):
\'\'------------------------------------筛选树(按日期)-------------------------------------------------------------------------------
\'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("购买单位")


--  作者:有点蓝
--  发布时间:2024/7/8 11:33:00
--  
增加一个全局变量区分,按类别显示时,给变量赋值“类别”,按日期显示时,给变量赋值“日期”,然后目录树点击事件

Dim Filter As String = ""
if vars("某变量") = "类别" then
调用上面第一段使用类别的代码
else
调用上面第二段使用时间的代码
end if

--  作者:15666282205
--  发布时间:2024/7/8 12:43:00
--  
老师,这个地方我不大明白:if vars("某变量") = "类别" then,是什么意思?我搜了帮助也没看明白,麻烦您说说好吗?


--  作者:有点蓝
--  发布时间:2024/7/8 13:35:00
--  
vars就是全局变量:http://www.foxtable.com/webhelp/topics/0325.htm

按类别显示时,给变量赋值“类别”,按日期显示时,给变量赋值“日期”
if vars("某变量") = "类别" then表示如果变量为"类别",说明目录树是按类别分类的

--  作者:15666282205
--  发布时间:2024/7/8 14:28:00
--  
会了,谢谢