以文本方式查看主题

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

--  作者:system1977
--  发布时间:2019/11/18 20:48:00
--  用列名作为筛选树节点名,怎样做截图那样
建窗口设置一个筛选树,想将列名名称设置为一级节点,图片点击可在新窗口打开查看列内容作为二级,参考例子
做不来,应该怎样改?图片点击可在新窗口打开查看[upload=table,测试用.table]
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20191118204438.png
图片点击可在新窗口打开查看
iewFile.asp?ID=139106
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20191118204444.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2019/11/18 20:51:36编辑过]

--  作者:system1977
--  发布时间:2019/11/18 20:49:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试用.table


--  作者:有点蓝
--  发布时间:2019/11/18 21:57:00
--  
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")

For Each c As Col In Tables("表A").Cols
    Dim n As WinForm.TreeNode = trv.Nodes.Add(c.Name,c.Name)
    For Each c2 As String In DataTables("表A").GetValues(c.Name,c.Name & " is not null")
        n.Nodes.Add(c2,c2)
    Next
Next

--  作者:system1977
--  发布时间:2019/11/19 8:50:00
--  
可不可以自定义?因为有些列用这个显示不太好,例如姓名,一列出来就特别多
--  作者:有点蓝
--  发布时间:2019/11/19 9:10:00
--  
dim str() as string = {"某列1","某列2"}
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")

For Each c As string In str
    Dim n As WinForm.TreeNode = trv.Nodes.Add(c,c)
    For Each c2 As String In DataTables("表A").GetValues(c,c & " is not null")
        n.Nodes.Add(c2,c2)
    Next
Next

--  作者:system1977
--  发布时间:2019/11/19 11:08:00
--  
可以了,但节点下的筛选点击却没有反应,例如展开部门后,点击其中一个部门名称,表中没有只显示该部门的人员,这个代码怎样写?
--  作者:有点蓝
--  发布时间:2019/11/19 11:19:00
--  
Dim Filter As String
Dim d1 As String
Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行
If e.Node.Text <> "显示所有行" Then
    Select Case e.Node.Level
        Case 1
            Filter = e.Node.ParentNode.Text & " = \'" & e.Node.Text & "\'"
    End Select
End If
Tables("表A").Filter = Filter

--  作者:system1977
--  发布时间:2019/11/19 14:21:00
--  
以下是引用有点蓝在2019/11/19 11:19:00的发言:
Dim Filter As String
Dim d1 As String
Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行
If e.Node.Text <> "显示所有行" Then
    Select Case e.Node.Level
        Case 1
            Filter = e.Node.ParentNode.Text & " = \'" & e.Node.Text & "\'"
    End Select
End If
Tables("表A").Filter = Filter


谢谢,可以了。和帮助例子只有一行代码不同,这行代码是什么意思:Filter = e.Node.ParentNode.Text & " = \'" & e.Node.Text & "\'"


--  作者:有点蓝
--  发布时间:2019/11/19 14:25:00
--  
e.Node.ParentNode.Text是列名,e.Node.Text是值

msgbox(Filter )看看就知道了

--  作者:system1977
--  发布时间:2019/11/19 19:58:00
--  
按照帮助“在筛选树显示统计数据”,生成了统计结果,但做不到在筛选树各个节点上显示统计数据
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试用.table