3.10 业务公式更新明细

通过先定位基本信息再操作明细的流程,实现对目标模板明细数据的更新。

1.前言

在前面的章节中,更新库存表时操作的是目标模板的基本信息。但实际业务中,有些数据存放在明细表中,比如入库后需要把"入库数量"回写到采购订单对应的商品明细里。如果直接操作明细,系统会不知道该更新哪一张采购单的明细,导致更新失败。
本教程讲解如何在业务公式中先操作基本信息、再操作明细表,实现将入库数量回写到采购订单商品明细的功能。

2.操作步骤

(1) 理解更新明细的前提

目标:了解业务公式更新明细表的操作顺序及其原理。
① 当目标模板带有明细表时,业务公式左侧会显示多个目标对象——比如"采购单"(基本信息)和"商品明细表"(明细)。
② 操作规则:针对明细表操作时,必须先针对基本信息操作。因为明细数据是挂在表单之下的,只有先通过匹配条件找到对应的采购单,才能知道明细属于哪张单,再针对该采购单的明细做更新。如果直接操作明细而不先定位基本信息,系统无法判断明细挂在哪张表单下。

(2) 新建业务公式

目标:在入库事件下添加一个业务公式,目标模板选择采购单。
① 打开"采购入库单"模板,单击【业务公式】,选中"入库"状态改变事件。
② 单击【添加公式】,目标模板选择"采购订单"。
③ 进入业务公式设置界面后,左侧可看到"采购订单"和"明细"两个目标对象。

(3) 设置公式-情况1:先操作基本信息

目标:入库时,先通过匹配条件找到对应的采购单。
原理:这一步是在目标模板的"总表"中定位表单。入库单上记录了"来源单号",这个单号就是采购单的单号,所以用采购订单.采购单号 = 本表单.来源单号就能精确找到本次入库对应的那张采购单,为后面更新明细确定归属。
① 左侧目标对象选择"采购单",将情况1的名称改为"确认入库"。
② 设置执行条件:本表单.入库 = 常量.是。表示入库时执行该情况。
③ 操作类型选择"更新表单"。
④ 设置匹配条件:采购单.采购单号 = 本表单.来源单号。找到与当前入库单对应的采购单。

(4) 设置公式-情况1:再操作明细

目标:找到采购单后,将入库数量回写到对应商品的明细记录中。
原理:这一步是在已定位的采购单内部,按商品编号找到具体的那一行明细。数据源设为"本表单.明细",是因为入库单的每一行商品都要更新对应的采购单明细——明细有多少行,公式就执行多少次,逐行把本次入库数量累加到该商品的入库数量上。
① 左侧目标对象切换为"商品明细表"。
② 将数据源设置为"本表单.明细"。入库单有多少行商品,就逐行更新对应商品的入库数量。
③ 设置执行条件本表单.入库 = 常量.是。
③ 设置匹配条件:采购订单.明细.商品编号 = 本表单.明细.商品编号。找到采购单中对应的商品明细行。
④ 对数据项进行赋值:采购订单.明细.入库数量 = 采购订单.明细.入库数量 + 本表单.明细.数量。将本次入库数量累加到原有的入库数量上。这里取"原有的入库数量+本次数量",是因为一张采购单可能分批入库,多次入库后入库数量要不断累加,而不是覆盖。

(5) 设置公式-情况2:取消入库

目标:取消入库时,扣减采购单商品明细的入库数量。
① 在情况1上右键复制,粘贴为情况2,将情况2的名称改为"取消入库"。
基本信息:
明细:
② 基本信息部分:将执行条件改为本表单.入库 = 常量.否,匹配条件保持采购订单.采购单号 = 本表单.来源单号
③ 明细部分:将执行条件改为本表单.入库 = 常量.否,匹配条件保持商品编号一致。
④ 修改赋值:采购订单.明细.入库数量 = 采购订单.明细.入库数量 - 本表单.明细.数量。将入库数量改为扣减,与入库操作相对应。

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

使用效果:入库时,系统先根据来源单号找到对应的采购单,再把本次入库数量累加到对应商品的入库数量上;取消入库时,扣减对应商品的入库数量。
更新明细的操作顺序:
  • 先操作基本信息:通过匹配条件(如采购单号)找到目标表单,确定明细的归属
  • 再操作明细表:在基本信息定位的基础上,通过匹配条件(如商品编号)找到明细行并更新

3.核心要点回顾

(1)云表中明细挂在基本信息之下,因此更新明细必须先操作基本信息,先定位目标表单。
(2)目标模板带明细时,业务公式左侧会显示基本信息和明细表等多个目标对象,可切换操作。
(3)数据源设为"本表单.明细"后,公式按明细行数逐行执行,每行更新对应商品的明细记录。
(4)累加式赋值(原有数量+本次数量)能正确处理分批入库多次累加的场景,匹配条件则决定了更新哪一张表单、哪一行明细。
2026-08-24
0 0