用Word创建DBF数据库的分类报表
董占山
(中国农科院棉花所,河南安阳,455112)
使用Word您可以创建一些需要大量打印的通用文档,这些文档的内容既有相同的部分,又有格式不同的标识部分,这些文档被称为合并文档,要创建合并文档,可以使用“工具”菜单中的“邮件合并”命令轻松地达到目的。
一般来说,任何形式的合并文档都有两个文件组成:一个主文件和一个数据源。主文件中包含着每个打印文件所共有的标准文字和图形;数据源中包含着需要变化的信息,如姓名、称呼、地址、电话、传真号等。当主文件和数据源合并时,Word能够用数据源中相应的信息代替主文件中的对应域,生成合并文档。如果将DBF数据库作为合并文档的数据源,那么就相当于为数据库创建各种分类报表。下面我们就介绍用WORD创建DBF数据库分类报表的方法步骤。
1. 创建主文档
首先我们要创建一个文档,它将包括所有分类文档都有的文字和图形,作为主文档使用。步骤如下:
- 单击“常用”工具栏上的“新建”按钮,创建一个空白文档;
- 输入每个分类文档都需要的文字和图形;
- 单击“常用”工具栏上的“保存”按钮,弹出另存为对话窗口;
- 在“文件名”编辑框中输入合适的文件名称;
- 单击〖确定〗保存文档;
- 单击“工具”菜单中的“邮件合并”命令,弹出邮件合并帮助器;
- 单击“主文档”下的〖创建〗按钮,弹出创建主文档菜单;
- 单击“分类”命令,弹出对话窗口;
- 单击〖活动窗口〗按钮,那么就将当前的活动窗口当作分类文档的主文档使用,至此主文档已经创建好了。
如果您还没有创建主文档,那么可以单击〖新建主文档〗按钮,以创建分类文档的主文档。当返回邮件合并帮助器后,单击〖编辑〗按钮,对主文档进行编辑,输入通用文字和图形等内容,并保存它。
2. 打开数据源
如果将已经存在的DBF文件当作数据源使用,可以采用下列步骤选择并打开它。
- 单击邮件合并帮助器的“数据源”选项下的〖获得数据〗按钮,弹出一个菜单;
- 单击菜单中的“打开数据源”命令,弹出打开数据源对话窗口;
- 单击“文件类型”列表框,选中“所有文件”;
- 单击“查找范围”列表框,查找DBF数据库文件所在的文件夹;
- 在“名称”列表框中找到需要的DBF数据库文件,选中它;
- 单击〖确定〗按钮打开它;打开数据源后,弹出一个对话窗口;
- 单击〖编辑主文档〗按钮,切换到主文档编辑状态。
3. 编辑主文档
创建了主文档并打开了数据源,需要在主文档中插入合并域和必要的Word域,用来连接主文档和数据源。
3.1 插入合并域
通过将合并域插入到邮件合并主文档的适当位置,可以决定合并文档时,使用那些数据源信息以及它们在合并文档中的位置。插入合并域的步骤比较简单:
- 将插入点移到待插入合并域的位置;
- 单击“邮件合并”工具栏中的〖插入合并域〗按钮;
- 从弹出的合并域列表框中选中一个合适的域即可。
注意:合并域是使用一对书名号括起来的域名,域名对应于数据源中的域名,书名号是合并域的特征符号,它不是从键盘上直接键入的。如果您直接键入或使用“插入”菜单中的“符号”命令插入符号“《》”,Word将不承认它是合并域的特征符号,只把它当作普通文字对待。
您欲问为什么,请您在合并域上单击,按<SHIFT+F9>键,显示域代码,可以看到MERGEFIELD域代码,如{MERGEFIELD
姓名}。不要更改MERGEFIELD域指令中的域名,该域名必须与数据源域名行中的域名完全一致。
3.2 插入Word域
通过在主文档中插入几种Word域,可以在最终的合并文档中包含更多的信息,并且可以控制数据的合并方式。插入这些域的通用方法是:
- 将插入点移到主文档的合适位置;
- 单击“邮件合并”工具栏上的〖插入Word域〗按钮,弹出一个菜单;
- 单击某一个菜单命令,可以打开与之对应的对话窗口或直接插入域代码到主文档。
使用ASK和FILLIN域,可以使Word合并每个数据记录与主文档时,提示用户输入数据源中没有的可变信息,这些信息将打印在特定的分类文档上,进一步增强了邮件合并的灵活性。还可以使用IF域,以达到有条件地显示信息;使用SET域设置书签,以便在合并文档中多次使用这一书签所代表的内容。还有MergeRec、MergeSeq、Next、NextIf、Skipif等域,灵活地运用这些域,可以简化许多邮件合并中的工作。关于这些域的具体使用方法,请您参阅Word的联机帮助信息。
4. 设置查询选项
对于DBF数据源中的数据,我们可能只想使用某些符合条件的记录来创建分类文档,那么就需要首先设置查询条件之后,再执行合并,以便过滤掉不符合条件的记录。设置查询条件的方法如下:
- 单击“邮件合并”工具栏上的“邮件合并帮助器”按钮 ;
- 单击邮件合并帮助器“合并数据和文档”下的〖查询选项〗按钮,单击弹出窗口的“筛选记录”选项卡标签,切换到筛选记录对话窗口;
- 单击“域”列表框,从弹出的域名列表框中选择一个域名;
- 单击“比较关系”列表框,选择合适的关系运算符;
- 在“比较对象”编辑框中输入欲比较的文本;
- 如果有第二个条件,首先单击与上面条件的关系列表框(第一列),从中选择“And”、“Or”等;然后在其后的列表框和编辑框中输入比较条件;
- 如果有还多个条件,那么重复第6步,直到输入所有的查询选项为止;
- 输入完毕,单击〖确定〗按钮返回。
5. 记录排序
为了让数据源中符合条件的记录在分类文档中按一定的顺序排列,还需要进行记录排序,方法如下:
- 单击“邮件合并”工具栏上的“邮件合并帮助器”按钮;
- 单击邮件合并帮助器“合并数据和文档”下的〖查询选项〗按钮,单击弹出窗口的“排序记录”选项卡标签,切换到排序记录对话窗口;
- 单击“排序依据”下拉列表框,从弹出的域名列表框中选择一个域名;
- 单选“递增”或“递减”互斥选项钮;
- 如果有多个排序字段,在下面的两个“以及”列表框中选中它们,并设定排序的方法;
- 单击“确定”按钮开始排序。
Word最多可以用3个字段作为排序的依据,对数据库中的记录进行排序,一般来说这对我们已经足够了。
6. 合并数据源和主文档
做完了上述工作,我们就可以合并文档了,以创建所需的分类文档。有几种方法可以完成合并,现介绍如下。
合并到文件
- 单击“邮件合并”工具栏上的“合并到文档”按钮
即可。
合并到打印机
- 单击“邮件合并”工具栏上的“合并到打印机”按钮;
- 单击弹出的打印对话窗口的〖确定〗按钮即可。
在一定记录范围内合并
- 单击“邮件合并”工具栏上的“邮件合并”按钮,弹出一个对话窗口;
- 单击“合并到”列表框,选择邮件合并的目的地,可以选择新建文档、打印机、电子邮件;
- 单击“要合并的记录”组框中的互斥钮和编辑框可以确定使用数据源的记录范围;
- 单击〖合并〗按钮即开始创建分类文档。
7. 应用实例
下面以一个Visual dBASE的国家信息数据库为例,介绍如何创建分类主文档和设定查询选项,以得到不同的分类报表。
7.1 国家信息数据库结构
这个国家信息数据库包括6个字段,其中一个是Binary类型的字段,在这里我们不处理它,该数据库的结构见表1所示。
表1 国家信息数据库COUNTRY.DBF的库结构
| 字段名 |
字段类型 |
字段长度 |
小数位数 |
排序 |
| Name |
C |
15 |
|
Ascend |
| Size |
N |
10 |
0 |
|
| Population |
N |
10 |
2 |
|
| GNP |
N |
10 |
2 |
|
| Capital |
C |
10 |
|
|
| MAP |
B |
|
|
|
7.2 主文档的内容
按本文前面所述的步骤创建一个分类主文档并打开Country.DBF作为数据源,然后在分类文档中插入一个1行3列的表格,并分别在各单元格中插入一个合并域,这时的主文档如下:
| 《Name》 |
《Population》 |
《GNP》 |
7.3 各种条件下产生的分类文档
1.不排序也不设置查询条件时,产生的分类报表如下:
| 国名 |
人口(百万) |
GNP |
| GERMANY |
81.10 |
2100.00 |
| FRANCE |
57.90 |
1360.00 |
| ITALY |
57.10 |
1050.00 |
| SPAIN |
39.20 |
490.00 |
| UNITED KINGDOM |
58.50 |
1110.00 |
| PORTUGAL |
9.90 |
68.00 |
| IRELAND |
3.53 |
53.00 |
注意:表格的第一行是在分类文档中添加的,下面所有的报表均是如此。
2.按国名排序但不设置查询条件时产生的分类报表如下:
| 国名 |
人口(百万) |
GNP |
| FRANCE |
57.90 |
1360.00 |
| GERMANY |
81.10 |
2100.00 |
| IRELAND |
3.53 |
53.00 |
| ITALY |
57.10 |
1050.00 |
| PORTUGAL |
9.90 |
68.00 |
| SPAIN |
39.20 |
490.00 |
| UNITED KINGDOM |
58.50 |
1110.00 |
3.按GNP(国民生产总值)排序,但设置查询条件时产生的分类报表如下:
| 国名 |
人口(百万) |
GNP |
| GERMANY |
81.10 |
2100.00 |
| FRANCE |
57.90 |
1360.00 |
| UNITED KINGDOM |
58.50 |
1110.00 |
| ITALY |
57.10 |
1050.00 |
| SPAIN |
39.20 |
490.00 |
| PORTUGAL |
9.90 |
68.00 |
| IRELAND |
3.53 |
53.00 |
4.按GNP排序,且设置GNP大于1000为查询条件时产生的分类报表如下:
| 国名 |
人口(百万) |
GNP |
| GERMANY |
81.10 |
2100.00 |
| FRANCE |
57.90 |
1360.00 |
| UNITED KINGDOM |
58.50 |
1110.00 |
| ITALY |
57.10 |
1050.00 |
5.按GNP排序,设置GNP大于1000和面积大于10万平方公里为查询条件时产生的分类报表如下:
| 国名 |
人口(百万) |
GNP |
| GERMANY |
81.10 |
2100.00 |
| FRANCE |
57.90 |
1360.00 |
| ITALY |
57.10 |
1050.00 |
8. 小结
由上述的例子可以看到Word具有十分强大的功能,用它的“邮件合并”功能可以创建DBF数据库的分类报表,并且十分方便实用,只需要生成合并的分类文档,然后对分类文档进行少量的加工,就可以直接打印输出,比用dBASE数据库管理系统要方便许多,因此我建议广大读者不妨试试这种方法。
|