3.4 列表选择

数据接口:列表选择

1.使用简介

填写表单时,经常会出现如果一次需要填写多个数据项的值,或者一次填写多行数据批量填写,该如何实现呢?“列表选择”类型的数据接口可以返回一个二维的数据表供我们选择数据。通过设计一个“列表选择类型的数据接口”(简称列表选择数据接口),把模板的数据提供给本模板或者其他模板使用。
“列表选择”数据接口可以在填写规范、填表公式、业务公式中使用,下面让我们一起来学习如何设置数据接口——列表选择吧。

2.设计原则

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

3.运行时机

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

4.基本设置

4.1名称

首先要输入列表选择数据接口的名称,可任意取名(建议根据模板名称编写,便于后期调用。如:客户信息列表、指定区域客户信息列表等),主要作用是便于我们直观的区分数据接口的用途。当数据接口有参数时,添加参数时,名称中自动添加参数名称。

4.2访问权限

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

4.3常用

①重复数据只显示一次
使用列表选择时,会遇到数据重复,若是全部都显示出来的话,会导致数据量过大,难以从中精确找到需要的数据,而且还会增加系统的负担,导致系统运行缓慢。因此,针对这些重复的数据,通过勾选“重复数据只显示一次”即可解决问题,将这些重复的数据当做一条数据显示。当然,若是有需要显示所有的数据,则不勾选该设置。
②查询时直接返回分页信息
③App视图样式
④自动分组(使用首个数据项进行分组)
⑤窗口大小,通过设置窗口大小的宽和高的数值,来设置数据接口查询结果对话框的大小。

4.4数据源

单击“数据源”选项卡,进入数据源的设置页面。
设计列表选择数据接口时,首先就是需要确定所需数据来源于哪个模板表单。可使用单数据源或者多数据源,涉及多数据源时可从多个模板中获取数据。
针对数据源的操作有添加、插入或者删除需要或不需要的模板。设计全局的列表选择数据接口时,数据源需要自己选择;而本模板里新增,默认添加本模板(必须存在并不能删除)。添加:添加数据源模板,新添加的模板会出现在所有已添加的模板的最后;插入:插入数据源模板,在选中的模板前(除本模板外)插入的新模板。删除:删除数据源模板。
关于数据源的设置具体可参考 12.5 查询模板:数据源

4.5数据列

单击“数据列”选项卡,进入数据列的设置页面。
添加数据项/删除数据项:根据需要添加列表选择数据接口的数据项,删除没必要的数据项。
上移/下移:移动数据项的位置,可以改变列表选择数据接口对话框中数据项的显示顺序。
列名:数据项显示的名称,添加数据项时会默认将数据源数据项的名称设置为列名,支持手动修改。
表达式:即列的值,可直接调用数据源数据项的值,也可将数据源数据项的值利用表达式编辑器编辑后获得。
数据类型:数据项显示的数据类型,可直接调用数据源数据项的数据类型;数据项数据项经过表达式编辑后,数据类型可能会发现变化,支持修改数据类型。
宽度:列表选择数据接口对话框中数据项的宽度。
隐藏:可以隐藏数据项,使数据项不在列表选择数据接口对话框中显示,但是可以被调用。
排序:设置列表选择数据接口对话框中数据的显示顺序。
返回值:列表选择数据接口被选中数据行后,默认返回该数据项相应的值。(在启动简易工作流时,调用列表选择数据接口并选择流程执行人,请确保列表选择数据接口的返回值是执行人。)
支持模糊查询:在数据项的填写规范中调用列表选择数据接口时,设置填报时允许手工输入后,在调用了该列表选择数据接口的数据项内手动输入时,会根据支持模糊查询的数据项,进行模糊匹配并以下拉框的方式显示数据。
  关于数据列的设置具体可参考12.4 查询模板:数据列
注:在表达式中使用函数后,请将此数据项的数据类型修改为对应的数据类型,否则会出现报错提示或提取的数据有误。

4.6过滤条件

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

4.6分类树

通过分类树,将列表选择数据接口的数据进行二次过滤,方便用户进行快速选择(详见 数据接口中的分类树

5.全局列表选择

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

6.案例应用

6.1填写规范中的使用

《出库单》出库时,选择可出库的货品。货品信息在《货品信息》模板,根据数据接口的设计原则,先在《货品信息》模板设计“货品信息列表选择”数据接口,然后在《出库单》中调用该数据接口。
①建立一个列表选择数据接口。在货品信息模板中新建“货品信息列表选择”数据接口,用来调取货品的基本信息和库存数量。
②进入《出库单》模板的设计界面,打开“数据表管理”,在“产品名称”数据项的填写规范上调用该数据接口。
③该数据接口没有参数,无需设置参数;选择货品时需要将货品相关的信息都赋值,在右侧的“数据项赋值”中给明细的数据项赋值数据源的数据项。
④在新建“出库单”,点击“产品名称”数据项的组合按钮调出列表选择窗口,并双击选中的数据进行赋值,给产品明细的多个数据项赋值。
更多案例参见 省市区联动

6.2填表公式中的使用

《小工单》系统中,员工在移动端领取生产任务后,打开《生产报工_移动端》界面进行报工,自动加载当前用户已领取生产任务的可报工明细,需要设计数据接口“当前用户可报工明细”,过滤条件为当前的生产任务。打开界面的时候自动加载,事件为“新建打开表单后”,触发该事件时。
6.2.1设计数据接口
“当前用户可报工明细”如何设计呢?根据已领取的生产任务查询可报工的所有明细,生产报工的数据保存在《生产报工》模板中,员工的信息保存在《员工基础信息》模板中,有2个数据源
①设计列表选择的数据接口“当前登录用户可报工明细信息”,有4个参数“工单编号”、“产品编号”、“工艺编号”、“工序编号”。
②数据源从《生产报工》的新增产出明细与《员工基础信息》模板的交集中获取,数据表的关联条件为“本模板.新增产出明细.工号=员工基础信息.员工编号”匹配时
只筛选当前登录用户的可报工明细,因此需要对《员工基础信息》进行过滤,选中数据源“员工基础信息”,设置过滤条件为“员工基础信息.账号=系统变量.当前用户登录账号”
③设置数据列,选择“数据列”选项卡,单击【添加数据项】,在“数据列表”中双击“本模板.新增产出明细”,弹出询问框,确定依次添加
④设置过滤条件,选择“过滤条件”选项卡,单击【添加参数】,设置参数,并勾选必填,代表参数有值才执行查询,填写过滤条件,并设置接口名称。
⑤选中已设置好的数据接口,单击【调试】,弹出“测试”对话框,确保数据接口没有问题。
6.2.2调用列表选择数据接口
①进入《生产报工_移动端》模板的设计界面,在“公式设置区”单击【填表公式】,弹出“填表公式管理”对话框,事件为“新建打开表单后”事件,选中事件,在对话框下单击【添加公式】,选择“赋值”操作;
②由于列表选择数据接口的参数设置了必填,先在执行条件中设置数据接口的参数都<> “”;
③在数据源中调用设置好的列表选择数据接口“当前用户可报工明细”,该数据接口有参数,给参数赋值,针对目标表明细执行插入操作,将数据源的数据项赋值给目标表的数据项。
实现效果如下图:

6.3业务公式中的使用

在业务公式中,我们可以调用列表选择的数据接口作为子数据源,子数据源不仅可以为表单赋值,还可以对数据进行判断。比如入库单反审时,当反审的数量大于《商品库存》中已有的数量时,需要弹出提示框提示用户。商品的库存信息保存在《商品库存》模板中,因此需要在该模板中设计数据接口,然后在《入库单》模板中执行出库审核时调用。
①设计数据数据“查询库存数量(仓库编号,商品编号)”,进入模板《商品库存》,新建列表选择的数据接口,数据源默认为本模板,数据列为“库存数量”
过滤条件有2个参数“仓库编号”和“商品编号”,并设置过滤条件,设计好数据接口后调试数据接口,确保没有问题后再调用。
②在《入库单模板》中调用设计好的数据接口,入库单取消入库时,不允许取消入库的数量大于库存数量,因此需要在“入库”状态改变事件针对《商品库存》操作的公式中,利用子数据源添加校验操作。
进入《入库单》模板的设计界面 ,打开业务公式,选中“入库状态改变事件”,打开更新商品库存的公式,数据源为“本表单.明细”;添加情况“取消入库校验”并拖动设置为第1个情况;执行条件为 “本表单.入库=常量.否”;设置子数据源,单击【+】,选择“数据接口”-“同级数据源”(关于同级数据源与子级数据源的区别可参考10.9子数据源),选择数据接口“查询库存数量(仓库编号,商品编号)”
该数据接口有2个参数,给参数赋值;设置满足条件,当查询结果不为空,并且查询库存的数量小于取消入库的数量时;执行报错操作;设置报错详情,用文本与数据项相加形成一串新的提示文本;
③找到一张已入库的入库单,商品取消入的数量为10,取消入库时,弹出提示框“商品电子秤的库存数量为8,不足以取消入库!”
2022-10-31
48 42