NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
#### **3.3.3 明细表间新增与更新** 表单间数据传递能实现流程表单与无流程表单的相互写入(含新增与更新),两个表单的数据写入关系包含主表与主表、主表与明细表、明细表与主表、明细表与明细表,其中明细表与明细表之间的写入最复杂。 为了实现两个明细表之间数据的触发新增与触发更新,必须保证两个表单间关联的明细表流水号唯一,然后再利用业务关系中的触发新增与触发更新实现。 示例场景如下:采购订单(流程表单)触发新建采购订单档案(无流程表单,作用:存储采购订单、采购订单调整、采购发票、采购入库等多次参照以及数据回写),采购订单调整(流程表单)手工选择需要调整的采购订单档案中的明细,采购订单调整结束后触发新增、更新采购订单档案明细。采购订单调整后见下图。 ![](http://mall.seeyon.com/ueditor/php/upload/image/20180817/1534496384623262.png) **1**\*\*)定义流程表单明细表流水号\*\* 由于系统只支持主表字段使用流水号,故需要自定义明细表流水号。为保证自定义的明细表流水号唯一和固定不变,可以在无流程表单的明细表中利用计算公式生成明细表流水号。即在采购订单明细表(流程表单)中增加一个文本控件,计算公式将主表流水号(例如:单据编号、ID等)、连接符(例如:横杠)和明细表序号连接起来。(见下图) 注: 1.无流程表单可以增加和删除明细行,公式计算后流水号会发生变化,不能保证明细流水号唯一和固定不变; 2.用连接符的作用是易于识别。 ![](http://mall.seeyon.com/ueditor/php/upload/image/20180817/1534496431946547.png) **2**\*\*)设置采购订单触发\*\* 采购订单审批结束后,需要将采购订单信息写入采购订单档案中,通过业务关系中的触发新建记录实现数据的写入。(见下图) ![](http://mall.seeyon.com/ueditor/php/upload/image/20180817/1534496459229941.png) **3**\*\*)设置采购订单调整关联\*\* 设置采购订单调整关联采购订单档案,由于需要实现选择采购订单的全部或部分明细,须设置两个关联分别关联采购订单档案的主表和明细表。 注:关联采购订单档案明细的选择器中设置过滤条件,须过滤订单编号; ![](http://mall.seeyon.com/ueditor/php/upload/image/20180817/1534496876872044.png) ![](http://mall.seeyon.com/ueditor/php/upload/image/20180817/1534496882425657.png) ![](http://mall.seeyon.com/ueditor/php/upload/image/20180817/1534496890678735.png) **4)设置明细表间更新** 采购订单调整包含调整原采购订单明细项和增加原采购订单的明细项,为实现原采购订单明细项调整后能自动更新,需要在业务关系中新建触发更新记录,在关联条件中包含订单编号和订单明细流水号。(见下图) ![](http://mall.seeyon.com/ueditor/php/upload/image/20180817/1534496920878789.png) ![](http://mall.seeyon.com/ueditor/php/upload/image/20180817/1534497126259184.png) **5)设置明细表间新增** 采购订单调整包含调整原采购订单明细项和增加原采购订单的明细项,为实现增加的明细项写入采购订单档案中,需要在业务关系中新建触发更新记录,并勾选新增明细行,在关联条件中包含订单编号的关联。(见下图) ![](http://mall.seeyon.com/ueditor/php/upload/image/20180817/1534497162463233.png) ![](http://mall.seeyon.com/ueditor/php/upload/image/20180817/1534497175180590.png)