根据单列内容生成目录树
例如有下表中的数据:

在窗口中加入一个目录树(TreeView),再加入一个按钮(Button),按钮的Click事件代码设置为:
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
tr.CreateTree("表A","类别")
单击此按钮,即可生成下图所示的目录数:

问题一:能实现目录,但加下代码,未能实现按生成目录树进行筛选,如何解决?
Dim Filter As String
Dim dr As DataRow = e.Node.DataRow '获取生成此节点的行
If e.Node.Text <> "显示所有行" Then
Select Case e.Node.Level
Case 0
Filter = "[类别] = '" & dr("类别") & "'"
'Case 1
'Filter = "[产品] = '" & dr("产品") & "' And [客户] = '" & dr("客户") & "'"
'Case 2
'Filter = "[产品] = '" & dr("产品") & "' And [客户] = '" & dr("客户") & "' And [雇员] = '" & dr("雇员") & "'"
End Select
End If
Tables("表A").Filter = Filter
问题二,用窗口的插入筛选树,没有实现目录分级筛选,如何解决?
插入筛选树
从Foxtable 2022版开始,我们可以直接在窗口中插入内置的各种功能树。
我们先学习在窗口插入内置筛选树,关于筛选树的使用,可以参考:筛选树
示例一
1、打开CaseStudy目录下的示例文件: 基本功能演示.Table
2、新建一个窗口,在窗口中插入一个FilterTree控件。
3、在窗口的AfterLoad事件中加上代码:
Dim trv As WinForm.FilterTree = e.Form.Controls("FilterTree1")
trv.Build(Tables("表A"), "类别")