1.什么是嵌套循环
在云表中,除了可以设置常规循环,还支持循环里套循环,就像“俄罗斯套娃”一样,也称之为嵌套循环。
2.填表公式如何实现嵌套循环
还是以单击【测试循环】按钮弹出提示框为例。在【测试循环】工具栏按钮单击事件下,已有赋值操作“更新明细”

在
明细.内容的值变化事件下,已有提示框的操作,每当明细.内容更新时,触发明细.内容的值变化,从而触发该事件执行弹出提示框操作。 为了测试嵌套循环:在提示框操作中,将数据源设置为序号列表,开始序号为1,结束序号为2,并在提示文本中添加序号,作为不同提示框的标识。

在使用界面填写商品后,单击【测试循环】工具栏按钮,明细有2条记录,弹出4次提示框操作,分别是:鼠标1、鼠标2、鼠标1、鼠标2。

由此可见,系统的运行过程:
先取目标表的第一条记录执行更新,赋值时触发该记录的值变化事件,运行提示框操作,依次读取序号列表的序号1和2,分别弹出提示框2次:鼠标1、鼠标2;
然后取目标表的第二条记录执行更新,赋值时触发该记录的值变化事件,运行提示框操作,再依次读取序号列表的序号1和2,分别弹出提示框2次:鼠标1、鼠标2。
目标表明细的循环作为第一层循环执行 ,序号列表的循环作为第二层循环执行,第二层循环嵌套在第一层循环中,通过事件触发实现了循环的嵌套!

3.案例实践:批量打印
在商品标签打印时,经常会遇到一次需要打印多个不同商品的多张标签,如下图,单击【批量打印】时,需要将明细的所有记录,按照打印模板样式根据打印份数进行打印,比如,编号为“001”的商品要打印2次,编号为“009”的商品要打印1次。该如何实现呢?

3.1 模板设计
1)为了让打印更灵活,通常我们会把业务执行模板和打印样式模板分开设计,做成两个不同的模板:“批量打印05”和“打印模板06”

业务模板:批量打印05
2)打印模板,打印的表单样式,不需要保存数据,勾选“不保存表单到数据库”。

打印模板06
3.2 将打印数据传递到打印模板
1)一个商品需要打印多份,在“打印模板06”定义辅助数据项“份数”;

2)在“批量打印”模板的【批量打印】工具栏按钮单击事件中,设置数据传递:
- 添加“新建表单”操作,根据 “打印模板06”模板,新建表单。
- 为了使每个商品都能按照打印模板打印,将数据源设置为 “明细”,系统将自动循环获取明细的每条记录,明细中有多少条记录,就会新建多少张打印表单,这是第一层循环。

3)配置按份数打印。在 “打印模板06”的“新建打开表单后” 事件下,引用系统内置的 “打印” 公式;将数据源设置为 “序号列表”。开始序号设为 1,结束序号设为 “份数”数据项。系统将根据“结束序号”自动生成一个数字列表(如1,2,3…),并循环执行打印。列表中有多少个数字,该标签就会打印多少份,这是第二层循环。

4)打印后自动关闭表单。为实现打印后自动退出,再引用 “退出(关闭)表单” 公式,并取消“退出前检查保存” 选项。配置后,表单将在打印完成时直接关闭,无需人工确认。

3.3 实现效果
单击【批量打印】按钮,按照打印模板,一共打印了3个PDF文件(为了展示打印效果,打印机选择“导出为WPS PDF”,导出PDF时需要确认文件名称),打印完毕后自动关闭了打印模板表单。
