以文本方式查看主题 - 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 |