1. 简介
1.1 UPDATE 公式用于更新目标表中符合条件的数据
比如在出入库的时候,出货时, 从存货表中要扣除符合条件的存货量,就在单据提交时,从存货表中把对应商品的存货量扣除就需要使用该公式
1.2 UPDATE 更新目标有两种
表单中的普通控件值(比如单行多行等数据)
表单下子表单的数据,子表单下有多条数据,可以根据设置的条件,只更新符合条件的子表单数据
1.3 UPDATE 格式
UPDATE(目标表,目标列1,目标值1,目标列2,目标值2…,WHERE(SEQ(目标列1,目标值1 = 123)))
目标表:要更新数据的目标表单
主条件:定位目标表下需要更新的表单数据。主条件是由逻辑函数构成:
比如WHERE(存货表.商品名, “铅笔”),则表示目标表是「存货表」, 要更新的数据是:商品名为「铅笔」的这批数据;
如果有多个条件,可以用 AND 函数组合。比如 SAND (SEQ(存货表.商品名, “铅笔”), GT (存货表.存货量 , 10)) 表示要更新的数据是:商品名为「铅笔」,并且「存货量」大于 10 的那批数据。
子条件:要更新的表单数据已经确定,但要更新的是这条数据下某个子表单下的数据。用子条件定位子表单哪些数据要更新。子条件是由逻辑函数构造,如果不需要更新子表单下的值,则填””,不能不填。
不能既更新普通控件,又要更新子表单下的值。如果有这种场景,请分成两个UPDATE 函数,一个用来更新普通控件,一个用来更新子表单下的数据。
目标值: 指目标列要更新成的值,目标值可以由当前录入表某个控件值,要更新目标表某个控件值,固定值通过其他函数组合而成。
1.4 一些概念
主条件:一个表单下有多条数据,需要我们设置条件,只更新符合条件的表单数据,这个条件称为主条件,用于定位哪条数据。
子条件:
先用主条件定位到具体哪条表单数据需要更新。但是如果要更新的是这条数据下某个子表单的某些符合条件的数据,这时就还需要另外一个条件,专门用来定位子表单下哪些数据要更新,这个条件称为子条件。
主条件定位哪条表单数据,子条件定位更新的表单数据下某个子表单下哪条子表单数据要更新
2.公式配置详情&公式解析

公式解析:
- 目标表:存货表。
- 主条件:SAND(SEQ(库存表.产品名称,子表单.产品名称),SEQ(库存表.型号,型号)).定位数据用到两个条件,即产品名称相等(SEQ(库存表.产品名称,子表单.产品名称))和商品型号相等(SEQ(库存表.型号,型号))。两个条件要同时成立,则用SAND将两个条件放一起。
- 目标列:库存表.库存数量
- 目标值:库存表.库存数量 - 订货量。 根据条件匹配到存货商品后,在原来存货量的基础上扣除这次的出货量。
3.注意事项
UPDATE 函数更新目标表为主表字段支持更新100条
UPDATE 函数一次只能操作表单下一个子表单控件里的数据。如果有操作多个子表单控件数据的需求,请配置多个 UPDATE 函数。
