1.我们是如何找到明细的?
在《入库单》的总表中,我们想找到明细数据时(如下图),需要先在总表选中一条记录,下方才会显示明细数据;或者在总表中,打开一张表单,在表单中显示基本信息和明细信息的数据。
在总表中选中,或者打开一张表单,是通过基本信息找到这张表单,然后才能才能看到明细。
因此:在云表中针对模板的明细操作时,必须先针对基本信息操作,确定是哪一张表单,然后再针对明细做操作。
2.如何操作?
1)目标对象
当目标表有明细时,业务公式的左侧显示多个“目标对象”,下图有对象:入库单(基本信息)和明细,有多个明细时,每个明细表都是一个对象。
2)如何切换目标对象
在“目标对象”上,点击,即可切换不同的目标对象,切换不同的目标对象(白色底为选中目标对象),右侧同步自动更新。
3.示例
3.1 本表基本信息更新目标明细
我们以更新“客户管理”的明细记录为例,当“客户信息”的记录更新的时候,自动更新“客户管理”中的对应的明细记录,模板数据如下:
1)确定事件。根据《客户信息》变更,自动更新《客户管理》,需要使用 业务公式-保存表单后事件,子事件“更新时”。每次更新“客户信息”,自动触发。
2)确定目标模板。需要对《客户管理》操作,目标模板为《客户管理》。
3)在保存保单后事件下添加公式。
在“客户信息”设计界面,单击工具栏的【业务公式】按钮,选中“保存表单后事件”,单击【添加公式】按钮,目标模板选择《客户管理》。
4)设置公式。根据规则:在云表中针对模板的明细操作时,必须先针对基本信息操作。
先针对基本信息操作。左侧目标对象选择“客户管理”,打开“更新时”子事件选项卡,对《客户管理》执行“更新表单”操作。
先找到“目标模板”的哪张表单,利用本表单的条件到目标表去查询,查询条件为: 客户管理.负责人=本表单.负责人 ,也是匹配的条件。
5)再针对明细信息操作。
左侧的目标对象选择“明细”,打开“更新时”子事件选项卡,对《明细》执行“更新表单”操作。
找到明细的哪条记录。利用本表单的条件到目标表去查询,查询条件为: 客户管理.明细.姓名=本表单.姓名,将本表单.联系电话
给“客户管理.明细表.联系电话”重新赋值
6)填写公式名称,保存公式和模板。
更多示例
批量导入明细
3.2 本表明细更新目标明细
我们以《入库单》入库时将入库数量回写到《采购单》为例。“入库单”入库时,需要增加“采购单”商品的“入库数量”,取消入库时,扣减“采购单”商品的“入库数量”。
模板样式如上,“入库数量”在《采购单》的“商品明细”中,针对“商品明细”操作时,必须先针对基本信息操作,先匹配找到“入库单”对应的“采购单”,然后再针对该表单“商品明细”的“入库数量”进行更新。
1)添加【入库】按钮。“入库”是一个状态按钮,先添加状态按钮,进入《入库单》的设计界面设计。
2)在“入库”状态改变事件下添加针对“采购单”的公式。
单击【业务公式】,打开“业务公式管理”对话框,选中“入库”状态改变事件,单击【添加公式】,选择目标模板“采购单”,进入业务数据处理界面。
“入库单”入库时,需要增加“采购单”商品的“入库数量”,取消入库时,扣减“采购单”商品的“入库数量”。
《采购单》有基本信息和明细信息,在左侧可看到有2个目标对象-“采购单”和“商品明细表”,针对明细表操作时必须先针对基本信息操作,再针对明细信息操作。
3)先完成“确认入库”的情况。左侧对象选择“采购单”,将情况1重命名为“确认入库”,执行条件为 本表单.入库 = 常量.是 ,利用本表单的条件到目标表去查询找到表单,查询条件为: 采购单.采购单号=本表单.来源单号;
4)再针对明细表操作。左侧目标对象选择“商品明细表”。
每个商品的“入库数量”都需要更新,数据源选择“本表单.明细”,将情况1重命名为“入库”,已找到这张采购单,需要更新哪个明细呢?利用本表单的条件到目标表筛选“商品编号”,并给 采购单.商品明细表.入库数量 赋值。
5)完成取消入库时,扣减“采购单”商品的“入库数量”。
为了更便捷操作,在“确认入库”情况下,右键,选择“复制”,在新的情况下再粘贴。
6)先针对基本信息操作,复制已有的“确认入库”情况,粘贴后重命名为“取消入库”,此时的执行条件为 本表单.入库=常量.否
先从目标模板的总表中,先确定是哪张采购单,根据条件: 采购单.采购单号=本表单.来源单号。
7)再针对明细信息操作,复制已有的“入库”情况,粘贴后重命名为“取消”,此时的执行条件为 本表单.入库=常量.否
已找到这张采购单,通过匹配条件“采购单的商品编号与入库单的商品编号相同”,找到采购单“商品明细”的记录,给 采购单.商品明细表.入库数量赋值,减少入库数量。
8)应用效果。“入库单”入库时,需要增加“采购单”商品的“入库数量”,取消入库时,扣减“采购单”商品的“入库数量”。
3.2.1 多情况运行顺序
同一个业务公式中有多个情况时,按照从左向右的顺序运行,当执行情况满足时才运行操作(参见
概述-执行规则-④
)在这个案例中,一个业务公式有4个情况,针对基本信息有2个情况,针对明细表有2个情况,它们的运行顺序是怎么样的呢?
★入库单“入库”时,有多个情况,按照从左到右顺序逐个运行的原则先运行针对采购单的公式“确认入库”①,条件满足,向下运行,此时才运行针对明细表的公式,针对明细表有2个情况,按照从左向右的顺序逐个执行的原则,会先先运行情况“入库”②,条件满足,向下运行,增加采购单明细的入库数量;再运行“取消”③,条件不满足,不运行;
当明细所有的情况运行完后,再回到针对基本信息的公式,运行针对采购单的公式“取消入库”④,条件不满足不运行,结束,不再运行针对明细表的公式;
★入库单“取消入库”时,有多个情况,按照从左到右顺序逐个运行的原则先运行针对采购单的公式“确认入库”①,条件不满足不运行,不再运行针对明细表的公式;
接在再运行针对采购单的公式“取消入库”②,条件满足向下运行,此时才运行针对明细表的公式,针对明细表的多个情况,按照从左向右的顺序逐个执行的原则,先运行情况“入库”③,不满足不运行,再运行“取消”④,条件满足,向下运行,结束公式。