Foxtable(狐表)用户栏目专家坐堂 → 目录树生成的列是通过变更传递进来的,如何写单击事件


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

主题:目录树生成的列是通过变更传递进来的,如何写单击事件

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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
目录树生成的列是通过变更传递进来的,如何写单击事件  发帖心情 Post By:2015/8/11 15:12:00 [只看该作者]

vars("TreeViewStr")="窗口名称|窗口标题|数据表名"

 

Dim tb As Table = e.Form.Controls("Table1").Table
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(tb.DataTable.name,vars("TreeViewStr"))
trv.Nodes.Insert("显示全部",0)

 

目录树是通过 vars("TreeViewStr") 变量传递进来生成的

 

单击筛选事件 如何写 代码

下面这样写怎么不行 

 

Dim tb As Table = e.Form.Controls("Table1").Table
Dim Filter As String = ""
Dim Valuea() As String
Dim Value() As String
Value = e.Node.FullPath.Split("\")
Valuea = vars("TreeViewStr").Split("|")
If e.Node.Text <> "显示所有行" Then
    Select Case e.Node.Level
        Case 0
            Filter = "Valuea(0) = '" & Value(0) & "'"
        Case 1
            Filter = "Valuea(0) = '" & Value(0) & "' And Valuea(1)  = '" & Value(1) & "'"
        Case 2
            Filter = "Valuea(0) = '" & Value(0) & "' And Valuea(1)  = '" & Value(1) & "' And Valuea(2)  = '" & Value(2) & "'"
    End Select
End If
tb.Filter = Filter

[此贴子已经被作者于2015/8/11 15:19:12编辑过]

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


加好友 发短信
等级:超级版主 帖子:110602 积分:562912 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2015/8/11 15:31:00 [只看该作者]

用msgbox("位置1")看看运行到那一步了

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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2015/8/11 15:36:00 [只看该作者]

Filter = "窗口名称 = '" & Value(0) & "'"  这样写 运行正常

 

Filter = "Valuea(0) = '" & Value(0) & "'" ,这样写 就运行不正常。 这时 msgbox(Valuea(0)) 显示为 窗口名称

 

即 如何在列名处,不写列名 而用变量代替

 


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2015/8/11 15:43:00 [只看该作者]

搞定了

 


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


加好友 发短信
等级:超级版主 帖子:110602 积分:562912 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2015/8/11 15:44:00 [只看该作者]

  Filter = "Valuea(0) = '" & Value(0) & "' And Valuea(1)  = '" & Value(1) & "'"
改为
Filter = Valuea(0) & "='" & Value(0) & “‘  And " & Valuea(1) & "='" &Value(1) & "'"   
[此贴子已经被作者于2015/8/11 15:45:21编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/11 15:50:00 [只看该作者]

Dim tb As Table = e.Form.Controls("Table1").Table
Dim Vals() As String = e.Node.FullPath.Split("\")
Dim cols() As String = vars("TreeViewStr").Split("|")
Dim filter As String = "1=1"
If e.Node.Text <> "显示所有行" Then
    For i As Integer = 0 To vals.Length - 1
        filter &= " and " & cols(i) & " = '" & vals(i) & "'"
    Next
End If
msgbox(filter)
tb.Filter = Filter

 


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2015/8/11 16:28:00 [只看该作者]

恩 这样的代码就是看起来舒服

 回到顶部