OpenLayersFilterTree(层级)

Table的OpenLayersFilterTree方法用于打开层级筛选树。

OpenLayersFilterTree的语法为:

OpenLayersFilterTree(Setting, Size)

Setting: LayerTreeSetting类型,用于设置筛选树。
Size:    整数型,可选,用于指定目录树宽度,单位为像素。

LayerTreeSetting的相关属性有:

PathCol:     字符型,指定层级列
TextCol:     字符型,用指定名称列,也就是标题列。
ValueCol:    字符型,用于指定数量列。
Unique:      逻辑型,是否要求行唯一,默认为True,如果允许重复行,将此属性设置为False即可。
Separator:   字符型,如果层级列是用符号分割的,可用此属性指定分割符号。
Lengths:     整数型数组,如果层级列是按长度分割的,用于此属性指定各级长度。
SortCol:     字符型,指定排序列
SortDesc:    逻辑型,是否降序排序

IncludeSub:  逻辑型,指定是否显示子目录数据。
Subtotal:    逻辑型,是否自动汇总子目录数据。
MergeTotal:  逻辑型,是否合并显示统计结果,默认为True。

GridTree:    逻辑性,指定是否自动开启折叠模式,默认为False。 
ExpandTo:    整数型,指定折叠树默认展开级别,默认为0,也就是都不展开,如果设置为-1,则全部展开。

区分树类型

还记得我们在介绍分级数据类型时,提到了三种分级数据,分别为BOM型、项目型和普通型,也知道了通过菜单设置分级筛选树的时候,是可以选择数据类型的。

那么通过代码打开分级筛选树,是如何区分数据类型的呢?很简单:

通过OpenInlineBomTree打开的自然是BOM树,通过
OpenInlineFilterTree打开的,默认是项目筛选树,如果将Unique属性设置为False,就是普通分级筛选树了。

示例一

打开CaseStudy目录下的实例文件: 折叠模式.Table

选择"会计科目"表,在命令窗口执行代码:

Dim t As New LayerTreeSetting
t
.PathCol = "科目代码"
t
.TextCol = "科目名称"
t
.Lengths = {1,3,2}
t
.GridTree = True
Tables
("会计科目").OpenLayersFilterTree(t)

得到的筛选树如图:

示例二

打开CaseStudy目录下的实例文件: 折叠模式.Table

选择"项目"表,在命令窗口执行代码:


Dim
t As New LayerTreeSetting
t
.PathCol = "级码"
t
.TextCol = "项目"
t
.Separator = "."
t
.GridTree = True
Tables
("项目").OpenLayersFilterTree(t)

得到的筛选树如图:



示例三

在运行以下示例之前,请打开CaseStudy目录下的实例文件: 分级数据.Table

选择表"销售B",在命令窗口执行以下代码:


Dim
t As New LayerTreeSetting
t
.PathCol = "层级"
t
.TextCol = "员工"
t
.ValueCol = "数量"
t
.Separator = "."
t.Unique = False
t.Subtotal = True
t
.GridTree = True
Tables
("销售B").OpenLayersFilterTree(t)

得到的筛选树如下图:

示例四

选择表"销售C",在命令窗口执行以下代码:

Dim t As New LayerTreeSetting
t
.PathCol= "级码"
t
.TextCol = "员工"
t
.ValueCol = "数量"
t
.Lengths = {2}
t
.Unique = False
t
.Subtotal = True
t
.MergeTotal  = True
t
.GridTree = True
Tables
("销售C").OpenLayersFilterTree(t)

得到的筛选树如下图:

示例五

选择表"销售D",在命令窗口执行以下代码:

Dim t As New LayerTreeSetting
t
.PathCol= "员工"
t
.ValueCol = "数量"
t
.Separator = "\"
t
.Unique = False
t
.Subtotal = True
t
.GridTree = True
Tables
("销售D").OpenLayersFilterTree(t)

得到的筛选树如下图:


本页地址:http://www.foxtable.com/webhelp/topics/3356.htm