1.前言
在3.7中,通过更新表单实现了入库时更新库存表,累加数量和金额。但取消入库时需要扣减数量和金额,当扣减到库存数量等于0时,单价也需要同步处理为0。这些场景无法通过单一的赋值表达式完成。
本教程讲解如何在业务公式的操作中使用条件表达式,根据不同的条件对同一个数据项赋不同的值。
2.操作步骤
(1) 理解条件表达式
目标:了解条件表达式的作用和执行规则。
① 条件表达式用在操作的赋值项上。每个赋值项可以设置多个条件,每个条件对应一个赋值表达式。系统从上至下依次判断,满足哪个条件就按哪个条件赋值。

② 赋值顺序说明:业务公式中的赋值项是按从上到下的顺序依次执行的。先执行数量、金额的赋值,再执行单价的赋值,因此单价的条件表达式可以直接引用前面已经计算好的库存数量。

(2) 复制公式并改为取消入库
目标:复制3.7中入库的更新库存公式,粘贴为取消入库的公式,并将数量和金额改为扣减。
① 打开"采购入库单"模板,找到3.7中创建的"更新库存"业务公式。

② 在情况1上右键复制,再点击"新建并粘贴",粘贴为情况2,将情况2的名称改为"取消入库-更新库存"。


③ 将情况2的执行条件改为:
本表单.入库 = 常量.否。
④ 修改情况2的赋值关系,将数量和金额改为扣减:
库存表.数量 = 库存表.数量 - 本表单.明细.数量库存表.金额 = 库存表.金额 - 本表单.明细.金额

(3) 设置条件表达式
目标:取消入库扣减库存后,当库存数量等于0时,单价赋值为0。
① 找到情况2中"库存表.单价"的赋值项,点击"条件表达式"设置按钮。

② 添加第一个条件:当库存数量不等于0时,单价按移动平均法计算。
条件:
库存表.数量 <> 0
赋值:库存表.单价 = 库存表.金额 / 库存表.数量
③ 添加第二个条件:当库存数量等于0时,单价赋值为0。
条件:
库存表.数量 = 0
赋值:库存表.单价 = 0
(4) 运行业务公式验证效果
使用效果:入库时累加库存数量和金额并计算单价;取消入库时扣减数量和金额,当库存扣减到0时单价自动赋值为0,避免出现错误的单价数据。

条件表达式与执行条件的区别:
- 执行条件:作用于整个情况(情况级别),控制该情况是否执行
- 条件表达式:作用于操作内部的赋值项(赋值级别),控制单个赋值项按什么条件赋值
3.核心要点回顾
(1)条件表达式用在操作的赋值项上,每个赋值项可以设置多个条件。
(2)条件表达式从上至下依次判断,只执行最先匹配到的条件。
(3)业务公式的赋值按从上到下的顺序执行,前面的赋值结果可以被后面的条件表达式引用。
(4)执行条件控制整个情况是否运行,条件表达式控制单个赋值项的赋值方式,两者级别不同。