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


  共有2623人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
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"),  "类别")






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


加好友 发短信
等级:五尾狐 帖子:1152 积分:7712 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/1/13 16:12:00 [显示全部帖子]

老师,问题一和问题二分别是用二种方法:

我们在目录树是主要作用是与表做筛选或加载
问题一:下面是根据内容生成目录,那如何它与与表做筛选或加载,如果无法实现与与表做筛选或加载,只是生成目录树,那没任何作用。

下面代码:      如何实现与表做筛选或加载?选择节点实现筛选

在窗口中加入一个目录树(TreeView),再加入一个按钮(Button),按钮的Click事件代码设置为:

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
tr.CreateTree(
"表A","类别"
)





 回到顶部