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)
得到的筛选树如下图: