用表间公式提取数据
在上一节,我们对订单模板上的客户名称字段设定了填写规范,填报时可以从下拉列表中选择,但地址、电话等依然还需要手工输入。设想一下填写订单的过程:
填好客户名称“甲公司”
--地址在哪里?…去翻一下客户登记表…找到了!
--把找到的地址“抄写”到收货地址处
--接着填…
这个过程中的“翻查”和“抄写”既耽误时间又容易出错。实际上,因为所有客户的信息都已经通过《客户登记表》模板录入计算机了,所以“翻查/抄写”的工作完全可以由计算机完成,只需要告诉计算机:
按照“我所选定的客户名称”到客户表中查一下地址,填充到“地址”栏。
这句话实际上表达了四个方面的含义:
- 从哪里找数据?----到“客户登记表”中。
- 找符合什么条件的数据?----按照“我所选定的客户名称”
- 找什么数据?----地址
- 找到数据做什么用?----填充到“地址”栏
这就是表间公式的最原始表达。用稍微规范一些的方式描述一下,教给计算机,就是这样:
6.3.1 定义表间公式
- 打开《订单》模板,进入设计状态
- 选择工具栏按钮【表间公式】,弹出“表间公式”窗口
- 按【新增】按钮,弹出如下图所示的对话框,选中第一个单选按钮“提数公式”,按【确定】
4.弹出“表间公式-提取数据”窗口,在公式名称处输入“查询客户信息”,应用方式选择“筛选条件改变后”,如下图。
5.按【来源数据】,弹出如下的“选择数据表”窗口。所谓“数据源”指的是现有模板上那些已创建的数据表。因为我们输入的所有信息都存储在这些数据表中。窗口左上部的列表中列出了所有已创建的数据表的名称。在左侧列表中选中“客户表”,点击【>】,客户表移到右侧列表,按【确定】
6.回到“定义表间公式”窗口,点击【筛选条件】按钮
7.弹出“输入表达式”窗口,做以下操作:
a)单击左侧分类列表中的“<客户表>”,右侧选项列表中出现客户表中的左右字段
b)双击选项列表中的“客户表.客户名称”,使之出现于下方的表达式文本框
c)单击常用操作符中的【=】
d)单击分类列表中的“<本报表>”
e)双击选项列表中的“本报表.订单_主表.客户名称”
构造好的表达式为“客户表.客户名称=本报表.订单_主表.客户名称”,如下图
表间公式在模板的设计状态下定义,在填报时实际起作用。其中的“本报表.订单_主表.客户名称”指的是“当前正在填报的这张表单上所输入的客户名称”。它是一个变量,只有在填报的时刻才能确定取值。 |
8.按【确定】回到定义表间公式窗口,刚刚输入的筛选条件出现在“公式定义区域”。
9.点击【填充方式】,出现“定义填充方式”窗口,填充数据表选择“订单_主表”,点击“地址”所在行的第一列编辑图标。
10. 再次弹出“输入表达式”窗口,参照前述方法输入表达式内容为“客户表.地址”,按【确定】。
11. 回到“定义填充方式”窗口,结果如图。
12.继续输入“客户编号”、“电话”、“大区”的填充方式,最终结果如下:
请注意:在每个填充目的字段的右侧,都有一个“锁定”复选框,勾选此复选框,表明通过表间公式填充到表单上的内容会被锁定,不允许手工修改,反之,则允许修改。 |
若需要填充的字段较多还可以通过【批量添加】、【快速匹配】按钮,快速设置填充字段。或点击【编辑文本】直接输入、复制粘贴。
13.按【保存】。回到“表间公式 - 提取数据”窗口,显示完整的表间公式如下:
14.按【保存】回到最初的“表间公式”窗口,按【退出】
15. 关闭模板。
说明:【应用时机】中的【定时执行】勾选并设置【执行频率】后,在填报有此提数公式的表单时,每间隔设置的时间,则执行一次此提数公式。
定义提数公式后,可如下图:选中提数公式,点击【测试执行】按钮,查看提数公式执行结果。
批量修改表间公式属性
当我们在一个模板中存在一个或多个同类型表间公式并想统一修改提数公式的选项卡中设置时,可依以下操作步骤来批量修改。
下面我们以出库单为例看一下如何批量修改提数公式的设置属性(回写公式的批量修改操作参考提数公式)。
1.设计状态下选中“出库单”模板,右键点击【表间公式】。
2.选中【提数】下的【提数】节点并且勾选右侧需要设置的公式。
3.点击【批量修改】按钮。弹出下面窗口勾选选项后显示出对应的选项卡,可在选项卡中修改设置。点击【确定】后修改的设置将在选择的全部公式中统一修改生效。
对于需要逐层展开数据的场景可设置【高级设置】
6.3.2 应用表间公式
以张三的账户登录,填写一份订单,您会发现两个现象:
- 选择客户名称后,客户编号、地址、电话和大区自动显示。
- 输入焦点无法进入客户编号、地址和电话所在的单元格,也就是说,它们被锁定了!
前者意味着输入变得简便快捷,而后者意味着出错的可能性大大降低。