3.6 利用业务公式的数据源实现业务

通过切换业务公式的数据源,实现按明细行逐行执行业务逻辑并生成库存日志。

1.前言

在前面的章节中,业务公式的数据源都使用默认的"本表单",公式只执行一次。但实际业务中,入库单有多行商品明细,每行都需要生成一条对应的库存日志。如果公式只执行一次,只能生成一条记录。
本教程讲解如何将业务公式的数据源切换为"本表单.明细",使公式按明细行数逐行执行,每行生成一条库存日志。

2.操作步骤

(1) 新建库存日志模板

目标:创建一个用于记录库存变动的新模板。
① 新建一个表单模板,模板名称为"库存日志",直接导入样式文件"库存日志.evs"。
库存日志.evs
8.7 KB
② 定义数据项:商品编号(文本)、商品名称(文本)、数量(整数)、操作类型(文本)、操作日期(日期和时间)、来源单号(文本)等等,如下图所示。
注意:日志编号可以通过设计自动编号数据接口来自动填写,本教程不详细讲解,可以查看:入门课程:自动编号的设计

(2) 理解数据源驱动规则

目标:了解业务公式中数据源的作用,为切换做准备。
① 业务公式的数据源默认为"本表单",公式只执行一次。
② 数据源除了提供数据外,还有一个重要作用——数据源中有多少条记录,公式就执行多少次。
③ 将数据源切换为"本表单.明细"后,明细有多少行,公式就会执行多少次。

(3) 设置入库生成日志

目标:入库时,为每行商品明细生成一条库存日志。
① 将情况1的名称改为"入库-生成日志"。
② 设置执行条件:本表单.入库 = 常量.是。表示入库时执行该情况。
③ 对库存日志执行"新建表单"操作。
④ 建立字段对应关系,将数据源中"明细"的"商品编号"对应到库存日志的"商品编号","数量"对应到"数量",操作类型赋值为"采购入库",来源单号赋值为本表单的单据编号。

(4) 设置取消入库生成日志

目标:取消入库时,同样按明细行逐行生成库存日志,记录出库信息。
① 点击"添加情况",将情况2的名称改为"取消入库-生成日志"。
② 在情况1上右键复制,在情况2中右键粘贴,将公式复制到情况2。
③ 将执行条件改为:本表单.入库 = 常量.否。表示取消入库时执行该情况。
④ 将操作类型改为"取消入库",数量赋值为 :本表单.明细.数量*-1

(5) 运行业务公式验证效果

使用效果:确定入库时,明细表有多少行商品,系统就逐行生成多少条"入库"类型的库存日志;取消入库时,同样逐行生成"出库"类型的库存日志。
扩展说明:
  • 数据源选择"本表单"时,公式只执行一次。
  • 数据源选择"本表单.明细"时,明细有多少行,公式就执行多少次。
  • 这是业务公式数据源的核心特性——驱动执行次数。

3.核心要点回顾

(1)数据源默认为"本表单",公式只执行一次。
(2)数据源切换为"本表单.明细"后,公式按明细行数逐行执行。
(3)数据源中的记录数量决定了操作的执行次数,这是数据源的核心作用之一。
(4)通过执行条件和多情况机制,可以区分入库和取消入库两种业务场景。
2026-07-17
0 0