6.3 用表间公式提取数据
在上一节,我们对订单模板上的客户名称字段设定了填写规范,填报时可以从下拉列表中选择,但地址、电话等依然还需要手工输入。设想一下填写订单的过程:
填好客户名称“甲公司”
-- 地址在哪里?…去翻一下客户登记表…找到了!
-- 把找到的地址“抄写”到收货地址处
-- 接着填…
这个过程中的“翻查”和“抄写”既耽误时间又容易出错。实际上,因为所有客户的信息都已经通过《客户登记表》模板录入计算机了,所以“翻查/抄写”的工作完全可以由计算机完成,只需要告诉计算机:
按照“我所选定的客户名称”到客户表中查一下地址,填充到“地址”栏。
这句话实际上表达了四个方面的含义:
- 从哪里找数据? ---- 到“客户登记表”中。
- 找符合什么条件的数据? ---- 按照“我所选定的客户名称”
- 找什么数据? ---- 地址
- 找到数据做什么用? ---- 填充到“地址”栏
这就是表间公式的最原始表达。用稍微规范一些的方式描述一下,教给计算机,就是这样:
6.3.1 定义表间公式
- 打开《订单》模板,进入设计状态
- 选择菜单“模板 表间公式”,弹出“表间公式”对话框
- 按【新增】按钮,弹出如下图所示的对话框,选中第一个单选按钮,按【确定】
图 6‑11选择表间公式类型
- 弹出定义表间公式对话框,在公式名称处输入“查询客户信息”,应用方式选择“筛选条件改变后自动执行”如下图。
图 6‑12输入表间公式名称
- 按【来源数据】,弹出如下对话框。所谓“数据源”指的是现有模板上那些已创建的数据表。因为我们输入的所有信息都存储在这些数据表中。对话框左上部的列表中列出了所有已创建的数据表的名称。在左侧列表中选中“客户表”,点击【 > 】,客户表移到右侧列表,按【确定】
图 6‑13选择表间公式数据源
- 回到“定义表间公式”对话框,点击【筛选条件】按钮
图 6‑14
- 弹出“输入表达式”对话框,做以下操作:
- 单击左侧分类列表中的“ < 客户表 > ”,右侧选项列表中出现客户表中的左右字段
- 双击选项列表中的“客户表 . 客户名称”,使之出现于下方的表达式文本框
- 单击常用操作符中的【 = 】
- 单击分类列表中的“ < 本报表 > ”
- 双击选项列表中的“本报表 .Sheet :客户名称”
构造好的表达式为“客户表.客户名称=本报表.Sheet1:客户名称”,如下图
图 6‑15输入表达式
图 6‑16输入表达式
表间公式在模板的设计状态下定义,在填报时实际起作用。其中的“本报表 . 订单 _ 主表 . 客户名称”指的是“当前正在填报的这张表单上所输入的客户名称”。它是一个变量,只有在填报的时刻才能确定取值。 |
- 按【确定】回到定义表间公式对话框,点击【填充方式】按钮。
图 6‑17 准备输入填充方式
- 出现“定义填充方式”对话框,填充数据表选择“订单 _ 主表”,双击“地址”所在行的第一列
图 6‑18双击输入填充方式
- 再次弹出“输入表达式”对话框,参照前述方法输入表达式内容为“客户登记表 . 地址”,按【确定】。
图 6‑19输入填充表达式
- 回到“定义填充方式”窗口,结果如图。
图 6‑20
- 继续输入“客户编号”和“电话”的填充方式。
图 6‑21
请注意:在每个填充目的字段的右侧,都有一个“锁定”复选框,勾选此复选框,表明通过表间公式填充到表单上的内容会被锁定,不允许手工修改,反之,则允许修改。 |
- 按【确定】。回到“定义表间公式”窗口,显示完整的表间公式如下:
图 6‑22定义好的表间公式
- 按【确定】回到最初的“表间公式”窗口,按【返回】
- 关闭模板。
6.3.2 应用表间公式
以张三的账户登录,填写一份订单,您会发现两个现象:
- 选择客户名称后,客户编号、地址和电话自动显示。
- 输入焦点无法进入客户编号、地址和电话所在的单元格,也就是说,它们被锁定了!
前者意味着输入变得简便快捷,而后者意味着出错的可能性大大降低。