1.触发时机
填表公式的“状态改变”事件是在客户端(云表浏览器)中触发的,表单的状态发生变化时触发。使用时需要选择具体的状态改变事件,模板默认的状态有“锁定”,根据状态的发生前后顺序又分为“锁定前”和“锁定后”状态改变事件,“锁定前”状态改变事件是指手动进行锁定/解锁前触发,“锁定后”状态改变事件是指手动进行锁定/解锁后触发;
当模板的“状态设置”有添加状态数据项时,同步在表单的“状态改变”事件下添加该状态的状态改变事件。比如,在“状态设置”中添加“审核状态数据项,此时表单的填表公式中增加“审核前”和“审核后”状态改变事件。
注意:状态改变事件仅在表单中进行状态改变时触发,在总表中选中表单执行状态改变时不触发该事件。
2.示例
当《采购入库单》审核“入库”时,需要判断该“采购入库单”对应的“采购订单”是否已经“取消采购”,若已经取消采购再不再执行“审核入库”。
解决思路如下:在填表公式“审核前”状态改变事件下添加“提示框”操作,通过数据源查询该采购入库单关联的采购订单的状态,若已取消采购再弹出提示框。
①《采购入库单》模板已设置“审核”状态改变事件,在模板设计界面,打开“填表公式”,选中“审核前”状态改变事件,在对话框底部单击【添加公式】,选择“提示框”操作;
②设置提示框操作。通过数据源获取关联的采购订单的审核状态,数据源调用模板数据接口“采购订单.查询单据审核状态”,该数据接口有参数,给参数赋值“本表单.来源单号”;在“提示框”操作的执行条件中判断查询的结果,当查询的结果为空或者为否时,弹出提示框,提示“采购订单已取消审核或者删除”;
注意:由于状态改变事件仅在表单中进行状态改变时触发,在总表中选中表单执行状态改变时不触发该事件,因此若在“填表公式的状态改变事件”设置该公式后,只能在表单中操作时才会执行校验,在总表中操作时没有校验,因此校验需要写入到“业务公式”的状态改变事件下,如下图