Foxtable(狐表)用户栏目专家坐堂 → 如何实现根据单列内容生成目录树进行筛选或加载?


  共有2707人关注过本帖平板打印复制链接

主题:如何实现根据单列内容生成目录树进行筛选或加载?

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


加好友 发短信
等级:五尾狐 帖子:1152 积分:7712 威望:0 精华:0 注册:2019/6/13 9:57:00
如何实现根据单列内容生成目录树进行筛选或加载?  发帖心情 Post By:2022/1/13 14:21:00 [只看该作者]

根据单列内容生成目录树



例如有下表中的数据:

图片点击可在新窗口打开查看

在窗口中加入一个目录树(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"),  "类别")






 回到顶部