19.1 “新建表单”公式
这种回写公式的作用是,保存一份表单的同时,自动新建一份其他的表单。这种类型的回写公式应用十分广泛,例如:
- 输入订单的时候,如果订单的客户尚未在“客户登记表”中登记过,则保存订单的同时,自动填报一份“客户登记表”
- 保存库存“调拨单”的同时,自动产生一张出库单(从调出仓库出库)和一张入库单(向调入仓库入库)
- 保存库存“调价单”的同时,自动产生一张出库单(按旧价格出库)和一张入库单(按新价格入库)
- ……
本节以上述第一个例子为例,说明“新建表单”公式的使用。
请读者先回顾第6章对于订单模板的设计。我们在订单模板上的“客户名称”处设置了填写规范,使得输入订单的时候,可以从一个下拉列表中选择客户名称,这就要求在输入订单之前,先把客户信息登记到“客户登记表”中。但是实际业务中,有可能一个新客户要订货,来不及事先登记客户信息,需要马上输入订单,这就要求我们的订单模板做改进,能够支持以下两点:
- 输入订单时,已有的客户名称,从下拉列表中选择,新客户的名称,直接输入
- 如果是新客户的订单,能够自动把新客户名称登记到“客户登记表”中。
设置下拉列表“填报时允许手工输入”
- 以设计者身份登录到管理控制到,选中数据规范“客户名称列表”,打开其属性窗口
- 勾选“填报时允许手工输入”,如图,点击【确定】

图 19‑1设置下拉列表允许填报时手工输入
这样修改之后,输入订单时,遇到客户名称不在下拉列表中的情况,就可以直接输入客户名称。
定义“新建表单”公式
- 打开订单模板,进入设计状态
- 选择菜单【表间公式】
- 在左侧选择公式类型“回写-新建报表”,点击【新增】按钮。
- 输入公式名称为“自动产生新客户”,应用时机为“初次填报保存时”,切换到“工作流任务”标签下,选择任务名称为“制单”,如图。

图 19‑2

图 19‑3
- 点击【 1. 选择模板】,在弹出的窗口下,选择要新建的模板名称。选择好后点击【确定】。回到上一层窗口。

图 19‑4
- 点击【 2. 筛选条件】按钮,弹出“输入条件”窗口,设置条件为“订单 _ 主表 . 客户编号 无值”,如图,点击【确定】

图 19‑5
解释一下,为什么要输入这样的筛选条件呢?大家可以回顾第6章,我们在订单模板上定义了一条表间公式,当选择客户名称后,会自动从客户登记表中查出该客户的编号。所以,只要客户编号有值,说明这个客户的信息在客户登记表中是存在的,只有“客户编号 无值”的时候,才是一个新客户,才需要自动添加到客户登记表中去。
- 点击【 3. 填充方式】按钮,弹出“填充方式”窗口,依次选择用本报表的哪些字段填充新表单的对应字段,如图,最后点击【确定】。

图 19‑6
- 回到上级窗口,完整的公式如下:

图 19‑7
- 点击【保存】,回到“表间公式”窗口,点击【关闭】
- 关闭模板。
应用“新建表单”公式
新建一份订单,直接输入一个下拉列表中没有的客户名称,系统提示如下信息:

图 19‑8
点击【确定】,接受手工输入的内容。继续输入其他内容,保存订单。
到我的工作台中查看“客户登记表”,会看到新客户的信息已产生。