1. 简介

1.1 UPDATE 公式用于更新目标表中符合条件的数据

比如在出入库的时候,出货时, 从存货表中要扣除符合条件的存货量,就在单据提交时,从存货表中把对应商品的存货量扣除就需要使用该公式
12.png

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.公式配置详情&公式解析

5.png
公式解析:

  • 目标表:存货表。
  • 主条件:SAND(SEQ(库存表.产品名称,子表单.产品名称),SEQ(库存表.型号,型号)).定位数据用到两个条件,即产品名称相等(SEQ(库存表.产品名称,子表单.产品名称))和商品型号相等(SEQ(库存表.型号,型号))。两个条件要同时成立,则用SAND将两个条件放一起。
  • 目标列:库存表.库存数量
  • 目标值:库存表.库存数量 - 订货量。 根据条件匹配到存货商品后,在原来存货量的基础上扣除这次的出货量。

    3.注意事项

    UPDATE 函数更新目标表为主表字段支持更新100条
    UPDATE 函数一次只能操作表单下一个子表单控件里的数据。如果有操作多个子表单控件数据的需求,请配置多个 UPDATE 函数。