3.5 树形列表

数据接口:树形列表

1.使用简介

生活中,我们很常见的一种以父子层次结构来组织对象的图案就是树状图。树状图可以很直观的展示出数据之间的从属关系。在云表中,我们可以制作数据接口树形列表类型的数据接口(简称树形列表数据接口)来表现数据项之间的从属关系,后期我们可以根据需要调用该树形列表数据接口。
下面让我们一起来学习如何设置数据接口——树形列表吧。

2.设计原则

遵循数据接口的设计原则:谁提供数据就到谁里面设计数据接口,设计列表选择类型数据接口前,先找到提供数据的模板,进入该模板的设计面后,再设计。

3.运行时机

在填写规范中使用树形列表数据接口时,数据项的单元格右侧会出现【...】按钮,单击【...】运行数据接口,执行查询;

4.基本设置

4.1名称

首先要输入树形列表数据接口的名称,可任意取名(建议据需要引用树形列表的数据项进行命名,便于后期调用。如:地区树形列表、员工树形列表等),主要作用是便于我们直观的区分数据接口的用途;当数据接口有参数时,添加参数时,名称中自动添加参数名称。

4.2访问权限

我们可以通过设置访问权限来实现下拉列表数据接口仅限本模板使用,或被多个模板同时使用的功能。在新建数据接口时,可以选择数据接口是私有还是公开,也可以在创建完成后再次修改访问权限(重新设置私有或公开)。需要注意的是,前期设置了访问权限,并在表单模板里调用该数据接口后,这时修改了访问权限,则曾调用数据接口还可以继续使用,之后的便只能由后期设置的访问权限,决定是否可以调用该数据接口。
私有:只有本模板可调用此数据接口;公开:本系统的所有模板都可调用此数据接口。

4.3数据来源

设置树形列表时,首先需要确定此树形列表中数据的来源,在树形列表数据接口中默认使用本模板为数据来源,若模板有明细时,可设置为模板的明细,不允许更改为其他模板。

4.4树形构建

在使用树形列表数据接口前,需要先构建树形,也就是使数据根据分类形成一个树形列表。在构建树形时有三种方法:多数据项分级、编码长度分级以及自我繁殖。
4.4.1多数据项分级
多数据项分级是根据设置的“分级数据项”来确定树形列表是由几级构成。树形列表中有两个分级数据项时,树形列表就有两级;有三个分级数据项时,那么树形列表就有三级......以此类推,使用多个数据项分级构建树形时,需要两个或两个以上的分级数据项。
如下图:地区树形的构建为多数据项分级,根据省市区分为了三级,第一级为“省份”数据项,第二级为“市”数据项,第三级为“区”数据项。
设计好的数据接口,调试结果如下:
“显示数据项”是多数据项分级每级显示的内容,大部分时候“分级数据项”和“显示数据项”设置相同。例如上例中,若省份有省份编号,市、区有市、区编号,构造树的时候,第一级节点的分级数据项可以使用省份编号,而显示数据项使用省份,第二级分级数据项使用市编号,显示数据项使用市,第三级分级数据项使用区编号,显示数据项用区。
4.4.2编码长度分级
编码长度分级是通过对数据项的长度进行层次的划分,数据项的长度有规律可循。比如下表中,依据每条记录的编号长度进行分级,编号的划分层次的规则是【3,2,2】。即编码的前面三位数字作为一级,比如“001”是广东省,“002”是海南省;中间两位数字作为二级,比如“00101”是广东省下的深圳市,“00102”是广东省下的广州市;最后两位数字作为三级,“0010101”是深圳市的罗湖区。【2,2】即编码的前面两位数字作为一级,后面两位数字作为二级,可根据自己的需求制定树形层次划分的规则。
编码长度分级树形列表数据接口的设计如下:
4.4.3自我繁殖
自我繁殖是根据两个数据项的父子关系来构造树形列表的层次。通过由子节点自动寻找父节点,以末端构建到根部的方式构建一个树形列表。使用自我繁殖构建树形时,“节点编号”和“父节点编号”两个数据项用来构建树形,节点名称用于树形的显示。比如将子节点数据项设置为“节点编号”,将“父节点”数据项设置为父节点编号,用子节点显示树形。
下面模板中只有数据项“子节点”和“父节点”。当“子节点”为天河区,其“父节点”为广州市,通过父节点广州市找到上一级,当子节点为广州市,其父节点为广东省,通过父节点广东省找到上一级,当子节点为广东省,父节点为中国,以此来构建树形。

4.5过滤设置

单击“过滤设置”选项卡,进入过滤条件的设置页面。使用树形列表数据接口时,若不加限制条件,那么会将所有数据都显示出来,系统使用时长越长数据量也会越大,查询的时长越久,为了实现提高效率,实现精确查询设置过滤条件只筛选出需要的部分数据。
4.5.1过滤表达式
通过添加参数,并设置参数与此树形列表中数据项的关系来进行数据的筛选。此筛选适用于条件多变化的情况。关于参数的作用可参考12.3 查询模板:过滤条件
添加参数/删除参数:指根据需求添加或删除一个自定义的参数。
上移/下移:指在显示过滤条件时所显示的自定义参数的先后位置。
参数名:一般将过滤的条件设置为“参数名”,比如仓库所在地、年、月等;
数据类型:设置参数的“数据类型”后该参数只能被赋值对应类型的数据;
必填:勾选“必填”则调用该数据接口时,参数一定要赋值才可进行筛选。
默认值:设置默认值后,当数据接口被调用后,未给参数赋值时,默认使用参数的默认值进行过滤。
过滤条件:单击按钮【编辑】,设置过滤的条件,过滤条件中可直接引用参数,将参数与数据表的数据项进行表达式编辑后筛选出符合条件的表单。未设置参数时,过滤条件筛选的表单是固定的;有参数但是过滤条件没有引用,则自定义参数无实际意义。
4.5.2过滤项
对需要过滤的数据项进行赋值条件(通过比较取值来过滤)。此筛选适用于条件固定的情况。
字段名是指比较取值的数据项的名称;比较可以选择“<”“>”“=”“<=”“>=”“<>”等的关联符号;取值1&取值2就* 是我们所需要与数据项进行关联比较的值。

4.6不继承数据源的策略限制

勾选“不继承数据源的策略限制”后,在调用该树形列表数据接口时,不受权限中的策略限制;不勾选“不继承数据源的策略限制”,在调用该树形列表数据接口时,会受到权限中的策略限制,也就是说可能导致无法使用所需要的数据。

4.7默认规范方式

4.7.1只选最底层节点
使用树形列表时,会存在两个或两个以上的节点,当上层节点数据主要用于分类时,只需要使用最底层的节点,勾选“只选最底层节点”。
4.7.2填报时允许手工输入
勾选“填报允许手工输入”后,在填写规范中调用此数据接口时,默认首选允许手工填入+对话框选择(允许手工输入和对话框选择输入);否则,默认首选为对话框选择(仅允许对话框选择输入,不允许手工输入)。

4.7.3视图尺寸宽高

通过设置窗口大小的宽&高数值,来改变树形列表数据接口结果对话框的大小。

5.全局树形列表

除了在模板中的数据接口-树形列表建立全局数据接口外,还可以在左侧目录树的【我的系统】--【系统管理】--【数据接口】--【树形列表】中建立全局的树形列表数据接口。 一般被多个模板引用的数据接口建立在全局比较好,方便设计者进行管理。

6.案例应用

6.1在填写规范中的应用

使用者通过使用树形列表进行填写表单,可以更加省时省力。只需直接选择树形列表中需要填入的数据即可,无需键盘输入。而且,树形列表可以直观的显示出数据之间的关系,我们以填写“客户档案”的信息为例,地址要填写具体的省市区。需要先设计地区树形列表数据接口,然后在《客户档案》模板中调用。
①设计地区树形列表数据接口。省市区数据由《省市区》模板提供,在该模板中设计数据接口,新建公开的数据接口,树形构建中构造方式设置为“多数据项分级”;
《省市区》模板
在此数据接口中,添加两个参数“省份”和“城市”,文本类型,且省份参数的默认值为“省”,城市的默认值为“市”,过滤条件为“本模板.省份 形如 自定义参数.省份 并且 本模板.城市 形如 自定义参数.城市”。当参数有具体的省市信息时查询省市下的地区树形;当参数的值不具体时,查询出所有省市的地区树形。修改数据接口的名称,设计好接口后调试接口确保设计的数据接口没有问题。
②在《客户档案》模板中调用地区树形列表数据接口,填写省份、城市、区信息。进入《客户档案》模板的“数据表管理”页面进行设置。
->先设置“省份”的填写。在“省份“的填写规范上调用“地区树形(省份,城市)”数据接口,该接口有参数,自动显示“参数绑定”,需要筛选出所有的省份信息,不给参数赋值时,将根据参数的默认值模糊查询出所有的数据(这种方式当数据量大时查询将比较缓慢)。
使用效果如下,在“客户档案”,选中“省份”数据项后,单元格右侧显示【...】,单击【...】按钮,弹出“树形列表”,显示所有的省份信息,单选省份。
->再设置“城市”的填写,在“城市”的填写规范上调用“地区树形(省份,城市)”数据接口,当“省份”被填写时,需要根据已填写的省份,筛选出该省份下的城市,在“参数绑定”给“省份”赋值“本表单.省份”,参数“城市”不赋值使用默认值。
使用效果如下,在“客户档案”中填写省份“黑龙江省”后,选中“城市”数据项,单元格右侧显示【...】,单击【....】按钮,弹出树形列表,根据参数“黑龙江省”筛选出该省份下所有的城市。
->最后设置“地区”的填写,在“地区”的填写规范上调用“地区树形(省份,城市)”数据接口,当表单的“省份”和“城市”被填写时,需要根据已填写的省份和城市,筛选出该省市下的地区,在“参数绑定”给“省份”赋值“本表单.省份”,给“城市”赋值“本表单.城市”;
使用效果如下,在“客户档案”中填写省份“云南省”和城市“丽江市”后,选中“地区”数据项,单元格右侧显示【...】,单击【....】按钮,弹出树形列表,根据参数“云南省”和“丽江市”筛选出该省市下所有的地区。
详细可参考 省市区联动

6.2在列表选择中的应用

6.3树形列表在总表中的应用

生活中,我们在读一本书时,都会先看目录,或者通过目录可以快速找到需要的章节,这样可以极大的节省阅读时漫无目的的查询需要章节的时间。在总表中查看数据时,也可以通过在左侧添加目录树的方式对数据进行过滤。我们以《商品档案》为例,当商品比较多时,可根据分类先筛选商品。先设计“商品分类树”,然后在《商品档案》模板中调用。
①设计“商品分类树”。商品的分类信息保存在《商品分类》模板,根据数据接口的设计原则:谁提供数据就到谁里面设计数据接口
《商品分类》模板
商品分类树的树形构建采用自我繁殖的树形,将所有的分类都过滤出来,不设置参数和过滤条件。
商品分类树
②在《商品档案》模板中调用“商品分类树”。在《商品档案》模板的设计界面,单击【模板属性】打开“模板属性”对话框,选择“总表设置”选项卡,“分类树”选项卡,添加分类树的标题,在“树形列表”上调用已设计的“商品分类.商品分类树”树形列表数据接口,将模板的数据项“列表数据项”与树形列表的“树节点”设置对应关系,《商品档案》的“商品分类”=树节点标题(关于分类树的参数说明 可参见 数据接口中使用填表公式)。
③设置总表的分类树后,效果如下
2022-10-31
41 40