1.循环的概念及作用

1. 循环基本概念

循环是什么?就是重复做一件事,比如抄写10遍课文。在云表里怎么做到这一点?答案就是:让数据来驱动重复,实现高效的批量处理。

2. 循环的使用

2.1 不使用循环

若不使用循环,要实现单击一次按钮弹出3个对话框,则需要在【测试循环】按钮事件下手动并列放置3个“提示框”操作(通常需复制或多次引用同一公式)。
注意:提示框操作勾选“执行后续操作”选项,确保弹出提示框后能继续执行后续操作。
这种方法设计冗余、效率低下且不易维护,仅作为理解循环优势的对比示例。

2.2 使用循环

在填表公式中,数据源是操作的驱动基础,它被配置在具体操作之上。当数据源包含多条记录(例如下图所示的3条)时,系统便会依次驱动操作重复执行:每一条记录都会触发一次操作,从而实现3次提示框的依次弹出。
那么,如何便捷地生成这样的多条记录呢?让我们以 “序号列表” 这个实用功能为例,来具体探索。

2.2.1 序号列表

通过系统预设的「数据接口-序号列表」功能,可根据设定的起始序号与结束序号自动生成连续数字序列。该功能包含以下两个参数:
  • 起始序号:序列的起始数值
  • 结束序号:序列的结束数值
例如,当起始序号设为1、结束序号设为3时,系统将生成列表 [1, 2, 3]

2.2.2  数据源调用序号列表实现循环

1)设置数据源。在提示框操作中,将数据源设置为「模板数据接口-全局.序号列表」,系统将根据数据源记录数自动生成循环操作;
2)配置数据接口参数:为「开始序号」和「结束序号」分别赋值 1 和 3。
注意:去掉“显示对话框”

2.2.3 运行效果

在运行界面单击【测试循环】按钮,系统将弹依次弹出3次提示框。
从这个案例中不难看出,数据源的作用是驱动一个循环过程:它会依次读取每一条记录(如第一条1、第二条2、第三条3……),数据源中有多少条记录,该循环就执行多少次在读取每条记录的同时,提示框中还可以获取该记录的详细数据

3. 实践案例-数据源在批量打印中的应用

接下来,我们来看如何利用数据源实现多次打印的实际应用场景。以打印商品标签为例:当您点击【打印】后,系统会根据表单中的“标箱数量”,自动打印对应份数的相同标签。
1)设置打印操作:在【打印】工具栏按钮的单击事件下,找到并修改已有的“打印”操作,将其数据源设置为「数据接口-序号列表」。.
2)配置动态打印份数:为了实现根据标箱数量动态控制打印份数,将数据接口参数中的结束序号设定为 本表单.标箱数量。
当表单中的标箱数量设为2时,系统会生成序号列表 [1, 2],并据此执行2次打印操作;当标签数量为3时,则生成列表 [1, 2, 3],并执行3次打印操作。打印执行次数与生成的序号数量始终保持一致。

4. 数据源循环的拓展与应用思路

4.1 明细

在填表公式中,可将“明细”设为数据源,系统会自动根据该明细的记录条数来驱动循环。即明细中有多少条记录,后续操作便会执行多少次
实现 销售合计金额计算 时,合计金额等于所有明细金额的总和。具体配置步骤如下:
1)在“明细.金额”的值变化事件下,设置一个为“合计金额”赋值的操作。
2)将数据源设置为 明细,系统将自动遍历明细中的每一条记录。
3)在赋值表达式中,使用 合计金额 + 数据源.金额 的方式累加,从而动态更新合计金额。
为确保计算正确,需先清空合计金额的初始值,再进行累加。操作顺序应为:①清空合计金额 → ②执行累加赋值。
图:清空合计金额

4.2 文本列表

在填表公式中,数据源不仅可设为序号列表,也可设为文本列表
下面我们将实现以下功能:点击【拆分】按钮时,系统依据标题将“组合字符串”内容拆分并写入对应的数据项中(效果如下图所示)。具体实现方式是借助文本列表作为数据源来驱动循环操作
在实现上述功能前,我们先来了解文本列表的基本用法。您可以在「数据接口-全局」中找到“文本列表”。它包含以下三个参数:
  • 字符串:待拆分的原始文本
  • 分割符号:用于划分文本的标识符
  • 是否去重:若勾选,则拆分后重复的文本仅保留一项
其作用是将“字符串”按“分隔符号”拆分为多个文本,并以列表形式展示。
注意:分割符号是英文半角符号还是中文全角符号,一定要对应
当字符串中的内容如图所示,系统将根据设定的分隔符将其拆分为一个包含4条记录的文本列表。接着,只需将每条记录中“:”之后的值赋给对应的数据项即可完成操作。
图:文本列表调试使用
步骤一:添加赋值操作。在【拆分】单元格按钮的单击事件下,添加一个赋值操作,并命名为“拆分”。
步骤二:配置文本列表数据源2. 设置该操作的数据源为 全局.文本列表,并完成其字符串、分隔符等参数的赋值。
步骤三:为目标数据项设置赋值逻辑3. 在给目标数据项赋值的表达式中,使用 IF 函数和 文本片段 函数来实现动态取值。
示例:为“商品编号code”赋值表达式逻辑为:IF(文本包含“code”, 文本片段(数据源.Value, ":", 2), 数据项.Value)。即:如果数据源文本包含“code”,则截取以“:”分隔后的第二个值(例如“A01”)进行赋值;否则,保持数据项原值不变。
图:拆分的公式
执行过程如下:
  • 读取第1条记录 "code:A01" → 匹配到 商品编号 → 赋值 "A01";其他项不变。
  • 读取第2条记录 "desc:我的商品" → 匹配到 商品名称 → 赋值 "我的商品";其他项不变。
  • 读取第3条记录 "qty:5" → 匹配到 数量 → 赋值 5;其他项不变。
  • 读取第4条记录 "lot:09" → 匹配到 批次 → 赋值 "09";其他项不变。
  • 循环结束。
图:文本列表循环过程
2025-12-10
0 0