440 likes | 551 Views
第 7 章 报表和标签设计. 7.1 报表布局 7.2 创建报表 7.3 修改报表布局 7.4 标签文件的建立 7.5 预览和打印报表与标签 习 题. 第 7 章 报表和标签设计. 报表的作用是把系统中检索的结果或操作的过程在打印机上打印输出。采用 VFP 提供的报表和标签,能够方便地实现对表中的数据和查询结果进行显示或打印。 报表包括两个基本部分:数据源和布局。数据源一般是表,也可以是视图、查询或自由表等;报表布局则定义了报表的打印格式。 本章主要介绍 VFP 报表文件和标签文件的建立与输出方法。.
E N D
第7章 报表和标签设计 7.1 报表布局 7.2 创建报表 7.3 修改报表布局 7.4 标签文件的建立 7.5 预览和打印报表与标签 习 题
第7章 报表和标签设计 报表的作用是把系统中检索的结果或操作的过程在打印机上打印输出。采用VFP提供的报表和标签,能够方便地实现对表中的数据和查询结果进行显示或打印。 报表包括两个基本部分:数据源和布局。数据源一般是表,也可以是视图、查询或自由表等;报表布局则定义了报表的打印格式。 本章主要介绍VFP报表文件和标签文件的建立与输出方法。
7.1 报表布局 7.1.1 创建报表步骤 设计报表有以下5个主要步骤:选取字段、确定创建的报表样式、创建报表布局、修改和定制报表布局、预览和打印报表。 报表文件具有.FRX文件扩展名。每个报表文件还有.FRT文件扩展名的相关文件。报表布局文件不是存储每个数据字段的值,而只是存储一个特定报表的位置和格式信息。如果报表中数据源字段值发生了变化,报表的值也会发生相应的变化。
7.1.2 报表样式 创建报表之前,必须先确定报表样式。Visual FoxPro系统提供了4种常用的报表布局。它们分别是: (1)列报表 • 报表中每行输出一个记录,记录字段的值在页面上按水平方向放置,如图7-1所示。 图7-1 “列报表”窗口
(2)行报表 • 报表中每条记录的输出字段在页面上按垂直方向分布,如图7-2所示。 (3)一对多报表 • 输出父表中的一条记录,以及与其对应的子表中多条记录,如图7-3所示。 图7-2 行报表示例 图7-3一对多报表示例
(4)多栏报表 • 表中每条记录的输出字段在同一个页面上分多栏、按垂直方向分布,如图7-4所示。 图7-4多栏报表示例
7.1.3 报表布局 VFP为用户提供了三种方法来创建报表布局: (1)用“`报表向导”创建简单的报表或者一对多报表。 (2)用“报表设计器”修改已有的报表或者创建用户自己的报表。 (3)用“快速报表”从单表中创建一个简单报表。 以上每种方法创建的报表文件都可以用“报表设计器”进行修改。“报表向导”是创建报表最简单的方法,并且“报表向导”可以自动提供“报表设计器”的定制功能,通过问答形式确定或填写有关选项。“快速报表”是创建简单布局报表的最快方法,但报表的数据源必须来自一个数据表。用“报表设计器”创建报表,首先由“报表设计器”提供一个空白报表布局,然后再在空白的报表布局中自由地定义和设计报表。在表单中直接用命令代码建立报表,建立的报表比较灵活,担设计过程比较复杂,并且需要反复的调试。
7.2 创建报表 7.2.1用“报表向导”创建报表 “报表向导”是创建报表的最简单的方法。利用报表向导建立的报表数据源,可以来自数据库中的一个表或一个自由表,也可以来自一个视图。若要使用报表向导创建报表,其操作步骤如下。 1.“报表向导”的打开 打开“报表向导”有三种方法: • 方法1 在“项目管理器”中打开 (1)在“项目管理器”的“文档”选项卡中选择“报表”选项,如图7-5所示。 图7-5 “项目管理器”选项卡
(2)单击“新建”按钮,屏幕显示“新建报表”对话框,如图7-6所示。(2)单击“新建”按钮,屏幕显示“新建报表”对话框,如图7-6所示。 (3)在“新建报表”对话框中,选择“报表向导”,则系统将显示“向导选取”对话框,如图7-7所示。 • 方法2 在“工具”莱单中打开 在莱单“工具”->“向导”中选择“报表”命令。出现“向导选取”对话框,如图7-7所示。 • 方法3 在“文件”莱单中打开 单击莱单“文件”->“新建”->“报表”,再单击“向导”按钮。出现“向导选取”对话框,如图7-7。 图7-6 “新建报表”对话框 图7-7 “向导选取”对话框
不管采用哪一种方法,当使用向导方式创建报表时都将打开一个“向导选取”对话框窗口。单击“确定”按钮,系统进入“报表向导”的字段选取画面,如图7-8所示。不管采用哪一种方法,当使用向导方式创建报表时都将打开一个“向导选取”对话框窗口。单击“确定”按钮,系统进入“报表向导”的字段选取画面,如图7-8所示。 2.“报表向导”的使用 (1)字段选取。单击“数据库和表”下拉列表框,从中选取“教师库”数据库,然后选择“教师基本信息表”。在“可用字段”框中,将表的全部或部分字段,通过移动按钮,移到“选定字段”框中,如图7-8所示 图7-8 ”字段选取”对话框
(2)对记录进行分组。单击“下一步”按钮,系统进入“报表向导”的分组记录选择画面,如图7-9所示,确定记录的分组方式,例如,选择“职称”。(2)对记录进行分组。单击“下一步”按钮,系统进入“报表向导”的分组记录选择画面,如图7-9所示,确定记录的分组方式,例如,选择“职称”。 用户最多可以建立三层分组层次。如果是数值型字段,可以选择“分组选项”按钮,打开“分组间隔”对话框,从中可以选择与用来分组的字段中所含的数据类型相关的筛选级别,并确定分组的位数。单击“总结选项”,可以打开“总结选项”的对话框,从中可以选择对基本字段取相应的特写值,如平均值,总计并添加到输出报表中。 图7-9 “分组记录”对话框
(3)选择报表样式。单击“下一步”按钮,系统进入“报表向导”的样式选取画面,选择“经营式”,如图7-10所示。(3)选择报表样式。单击“下一步”按钮,系统进入“报表向导”的样式选取画面,选择“经营式”,如图7-10所示。 (4)定义报表布局。单击“下一步”按钮,系统进入“报表向导”的定义报表布局画面。在“字段布局”中单击“列”或“行”,则相应的报表为列报表或行报表,如图7-11所示。 图7-10 “选择报表样式”对话框
图7-11 “定义报表布局”对话框 (5)排序记录。单击“下一步”按钮,系统进入“报表向导”的排序记录画面。在“可用的字段或索引标识”框中,选择排序字段,然后单击“添加”按钮,将其转移到“选定字段”框中。 【例】如图7-12所示,实现了按“出生年月”字段排序。 图7-12 “排序记录”对话框
(6)输入报表标题和确定保存方式。单击“下一步”按钮,系统进入“报表向导”的完成阶段。在“报表标题”文本框中,自动显示报表标题:“教师基本信息表”,可用户修改,如图7-13所示。 在单选按钮中选择报表的保存方式,如图7-13所示,选择第二选项,表示保存后进入“报表设计器”。单击“预览”按钮,可以显示报表,不满意可按“上一步”返回前面修改。单击“完成”按钮,屏幕显示“另存为”对话框,缺省的文件名为“教师基本信息表.frx”,单击“保存”按钮,系统自动生成报表,保存报表文件,并启动“报表设计器”来显示报表。 图7-13 “完成”对话框
7.2.2用“报表设计器”创建报表 使用“报表设计器”可以生成新的空白报表,然后根据需要添加控件,或修改已有的报表。 下面是使用“报表设计器”创建空白报表的方法: (1)在“项目管理器”的“文档”选项卡中,选择“报表”,如图7-5所示。 (2)选择“新建”按钮,屏幕显示“新建报表”对话框,如图7-6所示。 (3)在“新建报表”对话框中,选择“新建报表”按钮,则系统将显示“报表设计器”对话框,如图7-14所示。 “报表设计器”将显示一个新的空白报表,可以向空白报表中添加控件并定制报表。 7-14 “报表设计器”窗口
7.2.3 用“快速报表”创建报表 “快速报表”是自动建立一个简单报表布局的快速工具。用户可以使用系统提供的“快速报表”功能,来初步生成报表,如不满意,再利用“报表设计器”对该报表进行调整。 可以按以下步骤创建快速报表: (1)在“项目管理器”中的“文档”选项卡中,选择“报表”,如图7-5所示。 (2)选择“新建”按钮,屏幕显示“新建报表”对话框,如图7-6所示。 (3)在“新建报表”对话框中,选择“新建报表”按钮,则系统将显示“报表设计器”对话框,如图7-14所示。 (4)在主菜单的“报表”中,选择“快速报表”命令,系统屏幕显示“打开”对话框,如图7-15所示。 (5)在“打开”对话框中,确定要使用的表,单击“确定”按钮。 (6)在“快速报表”对话框中,可以输入标题,添加别名,如图7-16所示。 (7)单击“字段”按钮,进入“字段选择器”对话框,如图7-17所示。 (8)在“字段选择器”中,可以选择所需要的字段,然后单元击“确定”按钮。
7-15“打开”对话框 7-16“快速报表”对话框 7-17 “字段选择器”对话框
(9)在“快速报表”对话框(图7-16)中,选择“确定”,此时出现如图7-18 所示的快速报表。 (10)关闭“报表生成器”,在“项目管理器”中,选择刚刚设计的报表,然后选择“预览”,可以预览刚才生成的报表,如图7-19所示。 7-18 “快速报表”窗口 7-19“预览报表”对话框
7.3 修改报表布局 如果已经有了空白报表,或者用“报表向导”及“快速报表”生成的报表不符合要求,则可以在“报表设计器”中进行修改。修改的方法是:在“项目管理器”中,选择报表,然后选择“修改”命令。 7.3.1“报表设计器”中的带区 “报表设计器”由若干个带区组成,用户可以在各个带区中建立各种报表数据,而各个带区中的数据打印方法是不同的,用户应该根据自己的需要确定需要哪些带区,在各个带区中建立哪些数据。常见带区中的数据打印规则如下: (1)标题 • 在每个报表且在报表开头打印一次,如打印标题。 • 建立方法:在“报表设计器”打开后,从“报表”莱单中选择“标题/总结”带区。 (2)页标头 • 所包含的信息在每一页中都打印一次。如用来打印表格的表头。 • 建立方法:默认可用。
(3)列标头 • 所包含的信息在每列中都打印一次。 • 建立方法:从“文件”莱单中选择“页面设置”,设置“列数”选项的值大于1。 (4)组标头 • 每组打印一次。在其上定义的对象,当分组表达式的值改变时,打印此对象。组标头通常包含一些说明后续数据的信息。 • 建立方法:从“报表”莱单中选择“数据分组”。 (5)细节 • 其上的定义对象一般包含来自表中的一行或多行记录,每行打印一次。如打印表格中的数据行。 • 建立方法:默认可用。 (6)组注脚 • 每组打印一次。在其上定义的对象,当分组表达式的值改变时,打印此对象。组标脚通常包含组数据的计算结果值,如数据分组中的各组数据。 • 建立方法:从“报表”莱单中选择“数据分组”。
(7)列注脚 • 所包含的信息在每列中都打印一次。 • 建立方法:从“文件”莱单中选择“页面设置”,设置“列数”选项的值大于1。 (8)页注脚 • 其上定义的对象每一页面打印一次。 • 建立方法:默认可用。 (9)总结 • 每份报表打印一次。一般在报表的最后出现一次,如打印总结、统计数据。 • 建立方法:从“报表”莱单中选择“标题/总结”带区。
7.3.2 使用“报表设计器” 使用“报表设计器”,可以设计更灵活更复杂的报表,当打开“报表设计器”时,系统自动提供一个“报表控件”工具栏和“报表设计器”工具栏。一般有3个带区:页标头、细节、页注脚。当选择“报表”莱单中的“标题/总结”命令时,将出现“标题”带区。如图7-20所示。 7-20 “报表设计器”对话框
在“报表设计器”上的常见操作: 1. 设置报表上对象的位置 1)单击“报表控件”工具栏中的“选定对象”按钮 2)单击要移动位置的报表对象,则屏幕出现被选定的标志。 3)用鼠标拖拽被选中的对象到所需的位置,然后释放鼠标。 2. 设置报表上字段的长度 1)在报表细节带中,选定要设置的字段对象。 2)在对象8个方向的控制黑点上,根据需要缩放调整字段对象大小。 3. 删除报表的对象 1)单击“报表控件”工具栏中的“选定对象”按钮 2)单击要删除的对象,再按Del键。 4. 移动报表带 1)在要移动的带上按下鼠标键 2)上下拖动鼠标,到适当位置后,释放鼠标,则报表带被移动。
7.3.3设置报表的数据源 报表数据源通常是数据库中的一些表,也可以是视图、查询或自由表等。可以通过“数据环境”莱单,添加表或视图,也可以为一个表添加索引,从而使得数据的输出更为有序。 1.利用“数据环境”莱单添加表或视图的操作步骤如下: 1)在“项目管理器”中,选择“报表”,并选择一个已建立的报表。如图7-5所示。 2)选择“修改”按钮,系统进入“报表设计器”。 3)在“显示”莱单中,选择“数据环境”命令;单击右键,选择“数据环境”命令。屏幕显示如图7-21所示的“数据环境设计器”窗口。 7-21 “数据环境设计器”窗口
4)在“数据环境设计器”窗口中,单击鼠标右键,打开快捷莱单,在莱单中选择“添加”,屏幕显示“添加表或视图”对话框,如图7-22所示。 4)在“数据环境设计器”窗口中,单击鼠标右键,打开快捷莱单,在莱单中选择“添加”,屏幕显示“添加表或视图”对话框,如图7-22所示。 5)在“添加表或视图”对话框中,选择需要加入的表,选择“添加”按钮,单击“关闭”按钮。 7-22 “添加表或视图”对话框
2.为一个表添加索引的操作如下: 1)在“数据环境设计器”窗口中,按鼠标右键,在快捷莱单中选择“属性”莱单,打开“属性”窗口,如图7-23所示。 2)在“属性”窗口中,选择最上面的下拉列表,从中选择对象“Cursor1”。 3)选择“数据”选项卡,并选择“Order”属性。 4)在“Order”属性中,输入索引名称,也可以从“数据”选择卡最上面的属性下拉列表中选取。 5)关闭“属性”窗口。 7-23 “属性”窗口
7.3.4报表控件的使用 在打开“报表设计器”时,“报表控件”工具栏会自动显示。如果没有显示,选择“显示”莱单的“报表控件”工具栏命令,就会出现如图7-24所示的“报表控件”工具栏。 “报表控件”工具栏中的控件可以添加到报表布局中,用来显示及设计报表中的内容。添加控件的方法是单击需要的控件控钮,把鼠标指针移到报表上,然后单击报表来放置控件或把控件拖动到适当大小。此工具栏包括如下按钮: 1) 选定对象控件:移动或更改控件的大小。在创建了一个控件后,会自动选定“选定对象”按钮,除非选择“按钮锁定”按钮。 2) 标签控件:创建一个标签控件,用于保存不希望改动的文本。双击标签,打开“文本”窗口,选择“打印条件”按钮,则打开“打印条件”窗口。通过“文本”窗口和“打印条件”对话框的设置,确定标签打印条件和打印格式。 7-24 “报表控件”工具栏
3) 域控件:创建一个字段控件,用于显示表字段、内存变量或其他表达式的内容。双击域控件,打开“报表表达式”对话框,可以通过“报表表达式”对话框定义报表中字段控件的内容。 3) 域控件:创建一个字段控件,用于显示表字段、内存变量或其他表达式的内容。双击域控件,打开“报表表达式”对话框,可以通过“报表表达式”对话框定义报表中字段控件的内容。 4) 线条控件:设计时用于画各种线条样式。双击线条控件,打开“矩形/线条”对话框,可以通过“矩形/线条”对话框定义线条。 5) 矩形控件:用于画矩形。双击线条控件,打开“矩形/线条”对话框,可以通过“矩形/线条”对话框定义矩形。 6) 圆角矩形控件:用于画椭圆和圆角矩形。双击圆角矩形控件,打开“圆角矩形”对话框,可以通过“圆角矩形”对话框设定圆角矩形。 7) 图片/Activex绑定控件:用于显示图片或通用数据字段的内容。双击图片/ActiveX绑定控件,打开“报表图片”对话框,可以通过“报表图片”对话框绑定图片/ActiveX绑定控件的图片。 8) 按钮锁定控件:允许添加多个同种类型的控件,而不需重复选择此控件。
7.3.5其它设置 1)字体字号设定 • 可以为选定的对象设定字体字号,操作方法是先选定对象,后选择“格式”莱单中的“字体”选项,通过“字体”对话框进行字体字号设定。“字体”对话框如图7-25所示。 2)设定线条粗细 • 如果要设定线条粗细,可以先选定对象,后选择“格式”莱单中的“绘图笔”选项,从“绘图笔”选项的子莱单中选定线条磅数。 7-25 “字体”对话框
3)设定报表设计区域大小 如果要改变报表设计区域大小、左边距、列数等,可以选择“文件”莱单中的“页面设置”选项,在“页面设置”对话框设置设计页面的相应选项,如图7-26所示 7-26 “页面设置”对话框
4)单击“页面设置”对话框中的“打印设置”命令按钮,则打开“打印设置”对话框,可设置纸张大小和方向等,如图7-27所示。 7-27 “打印设置”对话框
7.4 标签文件的建立 标签是一种多列报表布局。标签的建立与报表的建立方法类似,可以使用“标签向导”或“标签设计器”来建立标签文件。常用于打印邮政标签、信封等。标签保存后系统会产生两个文件:标签定义文件:扩展名为 .LBX,标签备注文件:扩展名为.LBT。 7.4.1 用“标签向导”创建向导 用“标签向导”创建标签的操作步骤如下: 1)在“项目管理器”中的“文档”选项卡中,选择“标签”,如图7-5所示。 2)选择“新建”按钮,屏幕显示“新建标签”对话框,如图7-28所示。 7-28“新建标签”对话框
3)在“新建标签”对话框中,选择“标签向导”,则系统将显示“标签向导”对话框,如图7-29所示。 3)在“新建标签”对话框中,选择“标签向导”,则系统将显示“标签向导”对话框,如图7-29所示。 7-29 “标签向导”对话框
7.4.2“标签向导”的使用 选择表。选择需要建立标签的“表”,可以是数据库表、自由表,如图7-29所示。 1)选择标签类型,确定所需的标签样式,如图7-30。用户可以选择一种标准标签类型。 7-30 “选择标签类型”对话框
2)定义布局。用户可以按照在标签中出现的顺序添加字段,可以使用如图7-31中所显示的空格、标点符号、换行符等命令按钮格式化标签并使用“文本”框输入文本。 2)定义布局。用户可以按照在标签中出现的顺序添加字段,可以使用如图7-31中所显示的空格、标点符号、换行符等命令按钮格式化标签并使用“文本”框输入文本。 3)排序记录。单击“下一步”,系统进入“排序记录”对话框画面,如图7-12所示。选择排序记录的方式(升序或降序),确定标签中记录的排序顺序,按选定字段的顺序对记录进行排序。 7-31 “定义布局”对话框
4)完成。 向导保存标签之后,可以原样使用标签布局,也可以在“标签设计器”中按定制报表布局的方法定制标签布局。 用户也可以用“标签设计器”创建标签,“标签设计器”与“报表设计器”使用相同的莱单和工具栏,其方法与用“报表设计器”创建报表一致。在此不再重复。
7.5 预览和打印报表与标签 当用户完成报表和标签布局的定定制后,可以浏览设计结果。如果报表及标签设计完成后,报表和标签就可以打印输出了。可以通过命令方式和莱单方式预览或打印报表。 7.5.1 莱单方式使用报表 操作步骤如下: 在Visual FoxPro系统主莱单下,打开“文件”莱单,选择“打开”选项,选择一项目文件,单击“确定”按钮,进入“报表设计器”窗口,如图7-32所示。 7-32 “打开文件”对话框
1)在“报表设计器”窗口中,打开“文档”莱单,选择“预览”选项,可以预览报表,如图7-5所示。 1)在“报表设计器”窗口中,打开“文档”莱单,选择“预览”选项,可以预览报表,如图7-5所示。 2)在“报表设计器”窗口中,打开“文档”莱单,选择一报表文件,如图7-5所示。单击“修改”选项,可以打开“报表设计器”。 3)单击“文件”莱单,选择“打印”选项,打开“打印”对话框,设置打印选项,如图7-27所示,单击“确定”按钮,可以通过打印机打印报表的内容。 7.5.2用命令使用报表 1)命令格式:Modify Report <报表名> 命令功能:在“报表设计器”窗口中,打开以<报表名>为名的报表。 2)命令格式:Report Form <报表名> 命令功能:预览以<报表名>为名的报表。 3)命令格式:Report Form <报表名> To Printer 命令功能:在打印机上输出以报表名为名的报表。
习 题 一.选择题: • 1.使用“报表向导”定义报表时,定义报表布局的选项是________。 A) 列数、方向、字段布局 B) 列数、行数、字段布局 C) 行数、方向、字段布局 D) 列数、行数、方向 • 2.下列关于报表和标签说法不正确的是________。 A) 在进行分组之前,一般要对报表的数据源进行适当的分组。 B)标签是多列报表,为匹配特定的标签纸而特殊设置的。 C)报表布局文件的扩展名是.FRX,它存储着每个数据字段的值。 D)报表文件存储一个特定报表的位置和格式信息,每次运行报表,值都可能不一样。
3.在“项目管理器”的________选项卡下管理报表。3.在“项目管理器”的________选项卡下管理报表。 A) 报表选项卡 B)程序选项卡 C)文档选项卡 D)其他选项卡 • 4.报表文件的扩展名是________。 A) SPR B)FRX C)REP D)RPX • 5.“报表设计器”中默认的带区不包括________。 A) 页标头带区 B)页注脚带区 C)细节带区 D)标题带区
6.在“报表设计器”窗口的某个带区内添加一个域控件之后,系统将弹出________对话框。(§6.3 识记) A) 域控件 B)报表表达式 C)计算字段 D)打印条件 • 7.打印报表的命令是________。(§6.3 应用) A)REPORT FORM TO PRINT B)PRINT FORM C)DO REPORT D)RUN REPORT • 8.下列不属于报表的布局类型是________。 A) 行报表 B)列报表 C)一对多报表 D)多对多报表
9.在报表设计器窗口中,若要进行数据分组,则依据为________。9.在报表设计器窗口中,若要进行数据分组,则依据为________。 A) 查询 B)排序 C)分组表达式 D)以上都不是 二、填空题: 1.设计报表通常包括两部分内容, 这两部分内容是________和________。 2.Visual FoxPro 6.0提供了3种创建报表的方法,他们分别是________、________和________。 3.在利用“报表向导”创建报表时,可以在“向导选取”对话框中选取________向导和________向导。 4.使用________创建报表比较灵活,不但可以设计报表布局,规划数据在页面上的打印位置,而且可以添加各种控件。 5.如果要利用Visual FoxPro 的“快速报表”功能创建报表,首先应打开一个新的________,然后选择“报表”菜单中的________命令。
6.在“报表设计器”中设计报表时,带区的作用是控制数据在页面上的________。 6.在“报表设计器”中设计报表时,带区的作用是控制数据在页面上的________。 7.对于页标头带区,系统将在________打印一次该带区所包含的内容;而对于标题带区,系统将在________时打印一次该带区所包含的内容。 8.为了在报表中加入一个文字说明,应该在适当的带区中插入一个________控件。 9.为了在报表中显示一个表达式的值,首先应该在报表中加入一个________控件。 三、简述题: 1.创建报表的步骤有哪几步?报表的样式有哪几种?建立报表布局有几种方法? 2.“报表设计器”的带区有哪几种?它们的打印范围是什么? 3.报表和标签有什么区别?