数据抛转单击钮可以让用户在来源表单单击动作单击钮来将一笔数据中指定的字段值新增拷贝到另一张表单。
数据抛转与多版本表单不一样。数据抛转的意义在于,当你抛转某一笔数据的时候,其中的数据会被拷贝到另一张表单中,并存成一笔新纪录,两边的数据是不相关的。因此,你可以改写被抛转的数据而且不会影响数据来源。
从表单工具下的自订单击钮找到数据抛转。
举例来说,数据库有一张“报价单”及另一张“销售订单”,“报价单”中的数据其实跟“销售订单”数据差不多,但要不要下订单是顾客的选择,所以两张表单不会是完全连动的关系,这时候就能透过数据抛转来节省重新输入数据的时间。
“销售订单”的体系结构与“报价单”很像,虽然要设置数据抛转时,表单之间并不需要有相似的设计或是类似的字段,但一致性的设计对于修改或辨认上很有帮助。
进入抛转数据来源的表单设计模式,如范例中的“报价单”表单中,表单工具下设置数据抛转。
选择要将数据抛转到哪张表单,并设置要将表单中哪些字段抛转到另一张表单的哪些字段。+ 可以新增对应字段;也可以点选右侧的自动选择字段,来自动填入两边相同字段名称的字段。
设置完成后,点击创建单击钮并命名。名称建议简单明瞭,让用户能够快速辨认用途。
保存设计后,就能在表单中看到刚才新增的单击钮。
用户单击了刚才新增的单击钮后,就会把此笔“报价单”的内容,依据对应设置,新增拷贝到“销售订单”中。
点击单击钮后,“销售订单”就会新增一笔数据,内容是从运行单击钮的那一笔“报价单”数据抛转过来的。可以看到不仅一般字段的数据可以被抛转,子表格中的项目也一并抛转了。
如果在同一笔数据多次单击这个动作单击钮,就会在另一张表单生成多笔重复内容的新纪录。如果要避免同一笔数据被多次抛转,可以参阅此篇。
要再次编辑抛转单击钮,可以回到设计模式下,找到此组动作单击钮,点选名称后就可以修改对应的字段。
除了将一般字段抛转到另一张表单的一般字段,也可以将子表格字段抛转到另一张表单,可以是子表格抛转到子表格或子表格抛转到一般字段。
以下说明子表格抛转的两种情形:
1. 子表格抛转子表格:从前面“报价单抛转销售订单”的范例中,可以看到“子表格抛转到子表格”,设置抛转单击钮时,除了将报价单的“报价单号”、“报价对象”等一般字段值抛到销售订单的一般字段中,也将报价单的“产品名称”、“数量”等子表格字段抛到销售订单对应的子表格字段,单击一次单击钮,就会抛转创建一笔数据。
2. 子表格抛转一般字段:状况略有不同,假设子表格有 N 列数据,单击一次单击钮,会在对应表单抛转创建 N 笔数据。假设有“报价单”表单和另一个“商品报价纪录”表单,希望从“报价单”表单的子表格,抛转数据到“报价纪录”表单的一般字段。
“报价单”有一般字段及项次、产品名称、单价、数量、金额等子表格字段。
“报价纪录”有项次、产品名称、单价、数量、金额等字段。
在“报价单”进入设计模式,设置数据抛转到“报价纪录”。
抛转数据后,这张“报价单”的子表格包含 3 项报价,因此“报价纪录”会创建 3 笔对应数据。
参阅下表关于数据抛转的进阶设置说明:
进阶设置 | 默认值 | 功能 |
---|---|---|
运行时检查是否抛转空值到"必填"字段 | 关闭 | 可以避免目标字段为必填时没有填入字段值。 |
运行时检查抛转值是否符合目标字段的"输入检查" | 关闭 | 可以避免抛转值不符合目标字段的输入检查设置。 |
检查目标表单上所有的"必填"字段是否有设置抛转 | 关闭 | 确认抛转后目标表单上是否还有必填字段没有输入内容。 |
自动打开被抛转的数据(仅限一对一抛转) | 打开 | 抛转后打开新页面显示抛转后的表单数据,子表格的一对多抛转不适用。 |
重算目标表单上的所有公式 | 打开 | 默认为打开,若不希望直接运行公式重算的话记得撤销勾选。 |
运行目标表单上的 workflow | 打开 | 默认为打开,若不希望直接运行 Workflow 的话记得撤销勾选。 |
将来源数据上锁 | 关闭 | 可以避免让用户在抛转后修改来源表单的数据。 |
套用子表格筛选条件 | 关闭 | 参阅以下套用子表格筛选条件说明。 |
套用子表格分群条件 | 关闭 | 参阅以下套用子表格分群条件说明。 |
显示运行成功时的提示信息 | 打开 | 若撤销勾选(不显示运行成功信息),运行时间较长时,较难掌握是否及何时运行成功,因此建议保留此项勾选。 |
自订运行成功时的提示信息 | 关闭 | 勾选后下方会出现信息输入字段可以输入想要自订的提示信息,并请留意字数限制。 |
抛转来源有子表格字段时,可以套用筛选条件来只抛转符合条件的子表格数据,例如“报价单”转“订单”时,或许客户最后只选择购买某些项目而非全部,而子表格中有字段记录“是否确定购买”的话,就可以搭配此字段值来套用筛选条件。
以下图为例,原本报价了三个项目,但最后客户只购买其中两项,子表格中也有字段记录要购买的是哪两个项目:
原本直接抛转成订单的话,会将全部子表格数据一并抛转,之后你会需要手动删除不需要的项目,如果设置了套用子表格筛选条件,就可以省略手动删除的步骤。
根据设置的条件,抛转创建的订单中,只会有符合条件的两笔子表格数据:
备注:当将子表格字段抛转到一般字段时,即使子表格没有符合筛选条件的数据,抛转仍会运行,并会显示为抛转“ 0 ”笔数据。
抛转设置有子表格字段抛到独立字段+子表格字段抛到子表格字段,意即子表格有 N 笔数据,就会抛转成 N 笔独立数据,并且每笔独立数据中都有同样的 N 笔子表格数据(详细说明可以参阅这个章节)。但若你希望的是这些子表格数据,其实要根据某个字段值分成 N 群后,来决定生成 N 笔独立数据,并且根据分群后的结果决定每笔数据中的子表格有多少项目,就可以套用子表格分群条件。
像是“销售订单”要透过抛转单击钮创建“采购单”时,如果设计的对应是独立字段抛到独立字段+子表格字段抛到子表格字段,那一笔销售订单只会抛成一笔采购单,但若销售订单中的各个项目其实是要向不同厂商采购的话,直接这样抛转会需要手动根据你总共要采购的厂商数量来运行抛转 N 次,并逐笔手动选择该笔采购单的厂商并删除不是属于这个厂商的子表格项目数据。
以下图为例,如果这张销售订单的多个销售项目总共是来自两家不同厂商:
透过进阶设置套用子表格分群条件,根据子表格抛转到独立字段的“厂商编号”做为分群的条件:
就可以直接抛转成给两家厂商的采购单,并且各自包含属于该厂商的子表格项目:
备注:如果分群条件的字段值是空值时,默认不会被分群并抛转,但若你希望没有填写的分群字段值也要被抛转(空值自成一群的话),可以勾选分群字段值为空值的子表格数据也可以被抛转。
子表格与一般表格的数据抛转关系如下表。
抛转来源 | 抛转到一般表格 | 抛转到子表格 |
---|---|---|
从一般表格 | 可以(会创建对应的一笔数据) | 不行 |
从子表格 | 可以(会创建对应的N笔数据,N 为子表格列数) | 可以(会创建对应的一笔数据) |
由于一般字段只会保存一个值,而子表格一个字段可能有超过一个值,因此你不能在将一般字段的数据,抛转到子表格,会受到系统阻塞。
选择抛转字段时,若选择一般字段抛转到子表格字段,系统会将该列标记为红色,以避免误选而无法抛转的情况。
关于移除动作单击钮可以参阅这篇。
或是要针对动作单击钮做附加设置的话,例如限制使用使用动作单击钮的权限等,可以参阅这篇说明。