以文本方式查看主题

-  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=162077)

--  作者:hitzfeld
--  发布时间:2021/4/4 22:34:00
--  简单的动态筛选树改不好,求指教
就是帮助里面的最简单的那个筛选树,我想改成从一个combobox取动态值来筛选。
我做了一个combobox,里面能选择几个列名称,然后加个button,button代码如下:

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
\'Dim x As WinForm.Control =e.Form.Controls("combobox1").text
Dim x As String = e.Form.Controls("ComboBox1").text
trv.BuildTree("订单", "\'"& x &"\'")
trv.Nodes.Insert("显示所有行",0)

然后在treeview的NodeMouseClick的代码改为
Dim Filter As String = Forms("订单").Controls("CmoboBox1").text
Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行

If e.Node.Text <> "显示所有行" Then
            Filter = "\'"& Filter &"\' = \'" & dr("\'"& Filter &"\'") & "\'"

End If
Tables("订单").Filter = Filter

结果报错..............“无效列名“””
不知道怎么改?

--  作者:304376480
--  发布时间:2021/4/4 22:48:00
--  
看不太懂,表达式改成这样试试
Filter = Filter & " = \'" & dr(Filter) & "\'"
--  作者:hitzfeld
--  发布时间:2021/4/4 23:25:00
--  
谢谢304376480老师的回复,虽然没能用上您写的表达式。
但是自己搞定了,多了几个单引号.......
话说狐表的表达式好难理解,单引号、双引号、&&,自己没检查清楚。
其实错误提示就已经说明了图片点击可在新窗口打开查看,比如,提示错误:无效列名:‘客户’,我以为是列名客户错了,实际上提示的是加了单引号之后的客户错了..............
正确的代码如下:(NodeMouseClick事件
Dim Filter As String = Forms("订单").Controls("ComboBox1").text
Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行

If e.Node.Text <> "显示所有行" Then
\'Filter = Filter & " = \'" & dr(Filter) & "\'"
    Filter = ""& Filter &" = \'"& dr(""& Filter &"") & "\'"
End If
Tables("订单").Filter = Filter