一、简介

  1. DELETE公式用于删除目标表数据。

  2. DELETE支持两种类型的删除:

    1. 直接删除某条表单数据

    2. 删除某条表单数据中明细组件下某条明细数据。(表单数据还保留)

  3. 一些概念

    1. 主条件:一个表单下有多条数据,需要我们设置条件,来定位要操作的是哪条数据。

    2. 子条件:当我们需要删除某条表单数据中某个明细中的某条明细数据时,就需要这个子条件。子条件用于定位操作的明细数据。

    3. 录入表:配置高级公式,触发高级公式的表单。

    4. 目标表:被高级公式DELETE数据的表单。

  4. DELETE格式 : DELETE(目标表, 主条件, 子条件)

    1. 目标表: 要删除数据的目标表单。

    2. 主条件: 定位目标表下哪些数据需要删除。主条件是由逻辑函数构成。比如EQ(存货表.商品名, “铅笔”), 则表示目标表是“存货表”, 要删除的数据是:商品名为“铅笔”的这批数据。如果有多个条件,可以用AND函数组合。比如AND(EQ(存货表.商品名, “铅笔”), GT(存货表.存货量 , 10)) 表示要删除的数据是:商品名为“铅笔”,并且“存货量”大于10的那批数据。

    3. 子条件: 要操作的表单数据通过主条件已经确定,并且要删除该条数据下某个明细下的数据。用子条件定位明细哪些数据要更新。子条件是由逻辑函数构造。如果不需要更新明细下的值,则填””,不能不填。

    4. 如果子条件有配置,则主条件定位的数据不会被整条删除,而只是删除表单数据下符合条件的明细数据。如果子条件无配置,为””,则直接将主条件匹配的数据删除。

  5. 接下来,会按照以下几个场景介绍DELETE函数的使用

    1. 根据录入表的普通组件删除目标表整条数据。

    2. 根据录入表的明细组件删除目标表的整条数据。

    3. 根据录入表的普通组件删除目标表下的符合条件的明细数据

二、根据录入表的普通组件删除目标表整条数据

  1. 使用的表单:
    存货表: 存货商品(单行输入框)
    出货表:出货商品(单行输入框)

  2. 需求:
    存货表中保存着一批商品的信息。通过出货表将货物出掉。
    出货表中的出货商品来自于存货表中存货商品。
    每次出货表中出掉一件商品时,存货表中对应的商品就删除掉。

  3. 在出货表的业务关联规则中,配置公式
    DELETE - 图1

  4. 公式解析:
    目标表:存货表。
    主条件:EQ(存货表.存货商品,出货商品)。说明出货表提交的数据中,出货商品是A,那么就从存货表中把存货商品为A的数据全部删除了。
    子条件:由于删除的是“存货表”的整条数据,不是只删除明细下数据,因此子条件不需要,填写””

  5. 完整配置过程和效果如下图
    DELETE - 图2

三、根据录入表的明细组件删除目标表的整条数据

  1. 使用的表单:
    出货表: 出货明细(明细组件)。出货明细下有:出货商品(下拉单选)。
    存货表: 存货商品(单行输入框)

  2. 需求:出货表下有出货明细,一次可以出货多个商品。对于出货的多个商品,把存货对应的商品数据删除掉

  3. 在出货表的业务关联规则中,配置公式
    DELETE - 图3

  4. 公式解析:
    目标表:存货表。
    主条件:EQ(存货表.存货商品,出货明细.出货商品)。
    子条件:由于删除的是表单数据,不是明细下数据,因此子条件填写为””

  5. 操作的完整过程和效果如下图
    DELETE - 图4

四、其他注意点

  1. 主条件和子条件是由逻辑函数构造的。除了AND和OR之外,其他逻辑函数第一个参数必须是目标表中的组件,两个参数的位置不能调换