




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章 报表与标签设计及应用打印报表是用户获取信息的一条重要途径。VFP提供了设计报表的可视化工具报表设计器。利用报表设计器创建报表不仅可以按指定格式打印出表中相应数据内容,而且还具备了数据计算、统计、自动布局等功能。标签是一种特殊格式的报表,是多列布局的报表,它的创建、设计方法与报表基本相同。报表文件的扩展名为FRX,标签文件的扩展名为LBX。在报表和标签文件中并不存储数据源中的每个数据,仅存储数据的位置和格式信息。10.1 创建简单报表报表包括两个基本组成部分:数据源和数据布局。数据源指定了报表中的数据来源,报表的数据源通常是数据库表和自由表,也可以是临时表、查询或视图;数据布局指定了报表中输出内容的位置及格式。简单地说,报表就是在指定的数据源中提取数据,按照布局定义的位置及格式输出数据。VFP提供了报表向导、报表设计器和快速报表3种创建报表的方法。10.1.1 报表布局在创建报表之前,首先应该根据实际需要,确定报表格式。报表布局就是定义报表的打印格式。4种类型报表的布局格式如图10.1,在表10.1中对各类报表布局进行说明。图10.1 报表布局格式表10.1 报表布局类型说明布局类型说 明示 例列报表每个字段一列,字段名在页面上方按水平方向放置,字段与数据在同一列,每行一条记录 分组/总计报表、销售总结、财政报表行报表每个字段一行,字段名在数据左侧,字段与数据在同一行列表一对多报表按一对多关系显示表中的记录,包括父表的记录及其子表的相关记录发票 会计报表多栏报表多列记录,每条记录的字段沿分栏的左边缘竖直放置电话号码薄、名片10.1.2 使用“报表向导”创建报表“报表向导”是创建报表最简单的方法,可以通过回答报表向导提示的一系列问题进行报表设计。报表的数据源可以是表、临时表或视图。启动报表向导的方法如下:方法一:“文件”菜单“新建”选择“报表”“向导”按钮。方法二:常用工具栏上“新建”选择“报表” “向导”按钮。方法三:项目管理器中“文档”选项卡“报表”“新建”按钮“报表向导”。方法四:“工具”菜单“向导”“报表”,直接打开报表向导。启动报表向导后,首先弹出“向导选取”对话框,该对话框中有“报表向导”和“一对多报表向导”两个选择。如果报表的数据源是一个表,则选取“报表向导”;如果报表的数据源包括父表和子表,则应该选取“一对多报表向导”。然后按向导的提示步骤即可生成一个简单的报表文件。【 例 10.1 】使用报表向导建立学生成绩报表(Xscjbb.frx),用来显示学生的学号、姓名、性别、学院、课程和总分,并且按照总分由高到低排列。(1)打开数据源:在命令窗口中键入:Use Xsxxb,打开Xsxxb.dbf文件作为该报表的数据源。(2)打开报表向导:“文件”菜单“新建”选择“报表”“向导”按钮,出现了“向导选取”对话框。本例的数据源是一个表,故选择 “报表向导”。(3)使用报表向导:设置报表中出现的字段(如图10.2),在“数据库和表”列表框中可以选择报表的数据源,默认的数据源是前面已打开的Xsxxb表;在“可用字段”列表框中自动显示表中的所有字段,依次双击学号、姓名、性别、学院、课程和总分字段名后,在“选定字段”列表框中就显示出这些将在报表中输出的字段。(4)分组记录:设置数据分组方式,只有先按照分组字段建立索引之后才能进行分组。最多可以进行3级分组。在此例中不需要分组,直接单击“下一步”按钮。(5)选择报表样式:设置报表的样式,有经营式、帐务式、简报式、带区式和随意式。选择“帐务式”,单击 “下一步”。(6)定义报表布局:如图10.3,通过对“列数”、“字段布局”和“方向”的设置来定义报表布局。图10.2 报表向导-“字段选取”图10.3 报表向导-“定义报表布局” 列数:定义报表的分栏数。 字段布局:定义报表是列报表或者是行报表。 方向:定义报表在输出时打印纸的打印方向是横向还是纵向。(7)排序记录:设置记录在报表中出现的次序。最多可以设置3个排序字段。在“可用字段或索引标识”列表框中双击“总分”字段,选中“降序”选项,使报表中的数据按照总分字段降序排列。(8)完成:可以选择“保存”、“保存报表并在报表设计器中修改”或“保存并打印报表”。通常在打印报表前,应先单击“预览”按钮查看一下效果。最后单击“完成”按钮,将报表保存为文件名为Xscjbb.frx的报表文件。10.1.3 使用“快速报表”创建报表除了使用报表向导之外,还可以使用VFP的“快速报表”功能快速创建格式简单的报表。即“快速报表”功能可以将一个表或视图中的所需字段快速添加到报表文件中,形成一个简单格式的报表。【 例 10.2 】使用“快速报表”功能建立学生信息报表(Xsbb.frx),用来显示学生的学号、姓名、出生日期和民族码。(1)新建空白报表:打开报表设计器,新建一个空白的报表。方法:“文件”菜单“新建”选择“报表”“新建文件”按钮。(2)设置数据源:“报表” 菜单“快速报表”,系统首先弹出“打开”对话框,用户选择一个在报表中所要使用的数据源,该例选择Xsb.dbf。单击“确定”按钮,系统弹出 “快速报表”对话框(如图10.4)。图10.4 “快速报表”对话框(3)设置“快速报表”:在“快速报表”对话框中各选项的功能如下: 字段布局:系统提供两种报表的字段布局方式,分别是列布局与行布局。列布局是使字段从左向右的横向排列,而行布局是使字段从上向下的竖向排列。 标题:若选中该复选框,表示自动为每一个字段添加一个字段名标题,否则不自动添加。 添加别名:若选中该复选框,则自动在报表中每个字段前面添加表别名,否则不自动添加。 将表添加到数据环境中:若选中该复选框,则自动将表添加到数据环境中。 字段:单击“字段”按钮,显示“字段选择器”对话框,可以在其中选择要在报表中显示的字段。此例首先选定为列布局,并将“标题”、“添加别名”和“将表添加到数据环境中”3个复选框的内容都选中。然后单击“字段”按钮,在“字段选择器”窗口中分别双击学号、姓名、出生日期和民族码字段,将其加入到右侧的“选定字段”列表中去,单击“确定”按钮结束字段的选择。(4)预览、保存报表:经过前面的操作后,单击“快速报表”窗口中的“确定”按钮,此时在“报表设计器”窗口中出现了刚刚建立的学生信息报表。然后单击系统菜单项“显示”菜单“预览”,在屏幕中浏览该报表的输出形式,最后保存为Xsbb.frx报表文件。10.2 设计报表无论使用“报表向导”创建的报表,还是利用“快速报表”功能创建的报表,都比较方便快捷,但是格式过于简单不能完全满足用户的需要。因此,可以直接利用“报表设计器”为新建的空白报表设计其布局、设置报表的数据源、添加报表控件及指定数据在页面中的位置等,也可以使用“报表设计器”修改已经创建的报表文件,使其能够达到用户的要求。10.2.1 打开“报表设计器”1. 新建空白报表打开“报表设计器”,新建一个空白的报表的方法有:方法一:“文件”菜单“新建”选择“报表”“新建文件”按钮。方法二:项目管理器中“文档”选项卡“报表”“新建”按钮“新建报表”。方法三:使用Create Report命令。命令格式:Create Report 【 例 10.3 】在命令窗口中键入:Create Report Xsbb2. 打开已经建立的报表生成报表文件以后,可以利用“报表设计器”进一步设计报表。打开报表文件的方法如下:方法一:“文件”菜单“打开” “文件类型”选择“报表”双击需要修改的报表文件。方法二:使用Modify Report命令。命令格式:Modify Report 【 例 10.4 】在命令窗口中键入:Modify Report Xsbb10.2.2 报表设计器简介前面的方法可以打开“报表设计器”窗口,如图10.5。图10.5 “报表设计器”窗口1. 报表带区从图10.5中可以看出,一个报表被多条带状标识栏分隔成了若干区域,每一区域称为报表的一个带区。报表中可以有各种不同类型的带区,每个带区的名称在带区下面的标识栏上显示。带区的主要作用是用来控制数据在页面上的打印位置,系统以不同的方式处理不同带区的数据。首次启动报表设计器时,报表布局中包含3个基本带区,分别是“页标头”带区、“细节”带区和“页注脚”带区。 “页标头”带区:相当于报表的页眉区。系统在每页顶端打印一次该带区的内容,通常是该列要打印字段的字段名。 “细节”带区:相当于报表的内容区,是报表中最主要的带区。用来输出表记录内容,系统每条记录打印一次,打印的总次数由表中实际记录个数决定。 “页注脚”带区:相当于报表的页脚区。系统在每页底端打印一次该带区的内容,通常是页号、时间等内容。系统除了这3个带区外还有其它带区。每个带区的用途以及添加方法参考表10.2。表10.2 报表带区用途及添加方法带区名称用 途添 加 方 法标题每个报表开头一次,可以放置报表标题、公司标志等从“报表”菜单中选中“标题/总结”页标头每页一次,可以放置日期、列报表的列标题等启动“报表设计器”自动添加细节带区每条记录一次启动“报表设计器”自动添加组标头每个数据分组一次,可以放置分组字段、分隔线等从“报表”菜单中选中“数据分组”组注脚每个数据分组一次,可以放置分组总计等从“报表”菜单中选中“数据分组”页注脚每页一次,可以放置页码、日期等启动“报表设计器”自动添加总结每个报表一次,可以放置一些总计内容从“报表”菜单中选中“标题/总结”列标头在分栏报表中每列一次从“文件”菜单中选择“页面设置”,设置“列数”的数值大于1列注脚在分栏报表中每列一次从“文件”菜单中选择“页面设置”, 设置“列数”的数值大于1用户可以根据需要将信息保存在不同的带区中。在 “报表设计器”窗口中可以根据需要调整带区的高度。只要将鼠标指针指向要调整高度的带区的标识栏,参照左侧标尺拖动鼠标,即可调整带区到合适的高度。2. 数据环境设计器创建报表时,应先为报表指定数据源。如果一个报表的数据源总是相同的,就可以把数据源添加到报表的“数据环境设计器”中。每次打开、运行报表时,系统会自动打开数据环境中定义的表和视图作为数据源。关闭报表时,系统会自动关闭已经打开的数据环境中的表和视图。 打开数据环境设计器方法一:在“报表设计器”窗口中右击鼠标“数据环境”。方法二:在“报表设计器”窗口打开的情况下,“显示”菜单“数据环境”。 在“数据环境设计器”中添加、删除表添加表的方法:在“数据环境设计器”窗口中右击鼠标“添加”。删除表的方法:在“数据环境设计器”窗口中选中要删除的表,按Delete键。如果添加进来的两个数据库表之前已经建立了永久关系,那么此关系也会自动带入到“数据环境设计器”中。 利用数据环境,在报表中添加控件:与表单的数据环境相同,系统允许将报表数据环境的表中字段直接拖拽到“报表设计器”的适当位置,生成相应控件。 设置报表中记录的顺序:默认情况下,输出报表中的记录顺序是数据源表中的物理顺序。如果想要按照一定顺序输出报表中的记录,需要为数据环境中的表或视图设置索引。方法:在“数据环境设计器”中,右击表或视图,选择“属性”,然后在“属性”对话框中设置“Order”属性的属性值作为排序关键字。注意:“Order”的属性值只能在该表中已经建立的索引标识中选择。3. “报表控件”工具栏定义好报表布局和设置数据环境之后,就要开始添加报表控件了。通常情况下,在打开“报表设计器”窗口的同时,“报表控件”工具栏会随之自动打开。如果没有打开或者工具栏被关闭了,则可以通过单击“显示”菜单“工具栏”,选中“报表控件”,将“报表控件”工具栏再次打开。通过“报表控件”工具栏,可以向报表中添加各种类型控件,该工具栏中各图标按钮的功能如表10.3。表10.3 “报表控件”工具栏的按钮说明按 钮使用说明选定对象用来选中对象的,可以移动控件位置或改变控件大小。标签用于显示文本。域控件用于显示字段、变量或表达式的值。线条用于绘制直线。矩形用于绘制矩形,多作为边框。圆角矩形用于绘制圆、椭圆、圆角矩形。图片/Activex 绑定控件用于显示位图或通用字段报表控件的添加方法与表单控件的方法相似:选中“报表控件”工具栏中要使用的控件,然后在报表中适当的位置上单击即可将控件添加到报表中。10.2.3 使用“报表设计器”调整报表已经建立的报表随时可以通过“报表设计器”对其进行修改。【 例 10.5 】利用“报表设计器”修改已经建立的学生信息报表(Xsbb.frx)。(1)打开“报表设计器”:在命令窗口中键入:Modify Report Xsbb打开学生信息报表的报表设计器,如图10.5。(2)添加“标题”带区:“报表”菜单“标题/总结”,选中“标题带区”复选框。“标题带区”出现在“报表设计器”的顶部。(3)输入标题文字:单击“报表控件”工具栏中的“标签”按钮,在“标题”带区上单击鼠标,输入标题文字“学生信息一览表”。(4)设置标题文字格式:选中“标题”带区上刚添加的标签控件,单击“格式”菜单“字体”。在“字体”对话框中设置文字格式为:一号粗体宋体。打开“布局”工具栏,“显示”菜单“布局工具栏”。单击“布局”工具栏中的“水平居中”按钮,使标题文字居中显示。(5)添加控件:单击“报表控件”工具栏中的“标签”按钮,在“页标头”带区适当位置单击鼠标,添加一个“标签”控件,输入“性别”。右击“报表设计器”“数据环境”,将数据环境中的表(Xsb)中的“性别码”字段拖拽到“细节”带区,在刚创建的“标签”控件正下方,形成一个域控件,显示“性别码”字段的值。由于“性别码”字段的值是编码形式,应该为文字形式。双击“细节”带区中的“性别码”域控件,在“报表表达式”右侧输入表达式:IIF(Xsb.性别码=1,男,女)。(6)对齐控件:在“页标头”带区内,按住Shift键,同时选定所有标签控件。单击“布局”工具栏中的“底边对齐”按钮,使之对齐。在“细节”带区内,采取同样方法对齐域控件。(7)添加图片:单击“报表控件”工具栏中的“图片/Activex 绑定控件”按钮,在“标题”带区左端单击拖拽鼠标,打开“报表图片”对话框。在“图片来源”选中“文件”,输入图片路径及名称。为了保证图片完整不变形,单击选中“缩放图片,保留形状”。(8)添加线条:单击“报表控件”工具栏中的“线条”按钮,在“标题”带区下方绘制两条水平直线,在“页标头”带区下方绘制一条水平直线。按住Shift键,同时选中这3条直线,分别单击“布局”工具栏上的“相同宽度”和“垂直居中对齐”按钮。选中第2条直线,单击“格式”菜单“绘图笔”“磅”。(9)修改页注脚带区:选中“页注脚”带区的显示日期的域控件,将它拖拽到“总结”带区内,并且利用“对齐”工具栏设置为居中显示。选中“报表控件”工具栏中的“域控件”按钮,在“页注脚”带区内单击拖拽。在“报表表达式”对话框中设置“表达式”为:页码 + Alltrim(Str(_Pageno)。并且利用“对齐”工具栏设置为居中显示(10)调整带区高度:根据实际情况,用鼠标选中各带区标识栏,上下拖拽调整带区高度。(11)预览:“显示”菜单“预览”。(12)保存:单击“常用”工具栏上的“保存”按钮。修改之后的学生信息报表(Xsbb.frx)的“报表设计器”,如图10.6。图10.6 修改后的“报表设计器-xsbb.frx”窗口10.2.4 使用查询作为报表的数据源报表的数据源除了可以是表和视图之外,也可以是查询。首先打开报表设计器,然后在报表数据环境的Init事件中,输入SQL查询语句,注意该查询的输出去向必须为一个临时表文件,最后就可以象使用表中的字段一样来使用查询中的字段了。【 例 10.6 】利用查询做数据源,生成一个学生成绩报表(Xscj.frx)。(1)新建报表:在命令窗口中键入:Create Report Xscj(2)输入查询语句:“显示”菜单“数据环境”右击数据环境窗口“代码”。在代码输入窗口中将过程选择为“Init”,并在窗口中输入如下SQL语句:Select Cjb.学号, Xsb.姓名, Cjb.课程码, Cjb.考试成绩, Cjb.课堂成绩, Cjb.实验成绩,;Cjb.考试成绩+ Cjb.课堂成绩+ Cjb.实验成绩 AS 总分;From Cjb Inner Join Xsb On Cjb.学号 = Xsb.学号;Into Cursor Xscj(3)添加标题:“报表”菜单“标题/总结”。在“标题”带区中,单击“报表控件”工具栏上的“标签”按钮,添加一个标签控件,输入“学生成绩报表”,单击“格式”菜单“字体”,修改标题文字的字体、字号。(4)设置“细节”带区:在报表的细节带区中添加一个域控件,在其报表表达式中输入“学号”。依次水平排列再加入5个域控件,其对应的报表表达式分别为“姓名”、“考试成绩”、“课堂成绩”、“实验成绩”和“总分”。(5)设置“页标头”带区:在页标头带区中,每个细节区域控件的正上方分别添加一个标签控件,并输入对应的字段名。(6)预览:“显示”菜单“预览”,查看报表的输出效果。(7)保存:“文件”菜单“保存”,存为Xscj.frx报表文件。10.3 报表布局的深入在实际应用中,利用“报表设计器”修改报表的界面布局之后,还可以根据需要把具有相同性质的数据组成一组,这样会使报表更易于阅读。例如,将学生表中相同学院的学生信息打印在一起,就应根据“学院”字段对数据分组。除此之外,通过页面设置还可以建立具有多栏结构的报表。10.3.1 分组报表一个报表可以设置一个或多个分组,分组的设定基于所用的分组表达式。分组表达式通常由一个或多个表字段构成的。报表分组之后,报表布局就自动地为每组添加“组标头”和“组注脚”带区。如果报表的数据源是表,则记录的物理顺序一般来说不适于分组。因为报表布局实际上并不排序数据,它只是按记录在表中存在的顺序处理数据。即便是相邻的记录,若分组条件的值不同也将自动当作不同的组来进行划分。为了保证数据分组的正确性,可以按分组表达式为表设置索引,先把数据适当排序进而分组显示记录。或者在数据环境中使用视图或查询作为数据源。1. 添加单个组一个单组报表可以基于一个输入表达式进行数据分组。例如,在打印出来的学生成绩报表中,所有学生数据是相邻的,不同学院的学生可能在一页纸的任意位置上出现,如果要求同一个学院的学生成绩打印在一起,不同的学院的学生成绩不能打印在同一张纸上,就可以利用报表的分组功能实现此操作。【 例 10.7 】将学生信息报表(Xsbb.frx)修改为按学院分组的单分组报表。操作步骤如下:(1)打开报表:“文件”菜单“打开”选择类型为“报表”单击选中报表文件XSBB“确定”,则系统打开报表设计器并调出报表文件XSBB。(2)给定分组的条件:“报表”菜单“数据分组”,则系统打开 “数据分组”对话框。在该对话中的分组表达式中输入如下表达式:Left(学号,2),即分组条件是学生信息表中学号字段的第1、2两位,其为学生的学院编号。在窗口的组属性中单击选中复选框“每组从新的一页上开始”,单击“确定”按钮关闭“数据分组”对话框。(3)使记录按序排列:“显示”菜单“数据环境”在打开的“数据环境设计器”窗口中,右击学生信息表(XSB) 选择“属性”,则系统打开表文件XSB的属性对话框,在属性对话框中的“数据”选项卡上找到“Order”属性,将其修改为“学院码”,即学生信息表是按照学院顺序显示记录。(4)添加组标头、组注脚带区信息:向下适当拖动组标头栏,选择“报表控件”工具栏中的“标签”按钮后在组标头带区左端单击,输入要在组标头中显示的文字“学院编码:”;然后选择“报表控件”工具栏上的“域控件”按钮,在刚创建的标签后面单击,在弹出的“报表表达式”对话框中“表达式”后的文本框中输入如下表达式:Left(学号,2),即在该位置上显示当前组中的学院编码。(5)预览:“显示”菜单“预览”,在预览窗口中查看分组后的报表效果。(6)保存:“文件”菜单“另存为”,将报表按照文件名“XSBB1”改保存起来。至此,一个单分组的报表文件就建立完成了。2. 添加多个数据分组在报表内最多可以定义 20 级的数据分组。嵌套分组有助于组织不同层次的数据和总计表达式。添加多个分组时要求当前表使用的索引条件包含了每一组的排序。如果要打印的学生信息报表不是简单地以学院来分组,而是在学院分组的基础上,再按照专业和班级来分组数据,即同一个学院相同专业相同班级的学生信息打印在一起,不同专业、不同班级的学生信息相互分开,就要用到多级分组的报表结构。【 例 10.8 】修改在例10.1中使用报表向导创建的报表文件XSCJBB,设计成按学院和性别二级分组的报表。步骤如下:(1)打开报表文件:在命令窗口中键入:Modify Report XSCJBB则系统打开报表设计器,并将该报表文件调入到报表设计器中。(2)数据分组 :“报表”菜单“数据分组”,在给出的“数据分组”对话框中输入分组的第1个条件表达式:学院。在“属性”选项中选中复选框“每组从新的一页上开始”。在第1个分组表达式的下端再输入分组表达式:性别。同样在“属性”选项中选中复选框“每组从新的一页上开始”,使每一组打印完成后,下一组从新的一页开始打印。(3)设置组标头带区内容:在报表设计器中分别拖动每一个分组的组标头带区分隔栏,利用“报表控件”工具栏,在两个组标头带区中分别添加1个标签控件和1个域控件,将标签控件的提示文本分别设置为“学院:”和“性别”,在域控件中分别使用如下两个表达式:“学院”和“性别”(4)添加索引:为了保证分组的正确性,应该使表文件Xsxxb中记录按照学院和性别排序。为表文件Xsxxb建立索引,索引关键字是“学院+性别”。建立索引的方法:在命令窗口中输入语句如下:Use XsxxbIndex On 学号+性别 Tag 学号性别(5)设置报表文件当前索引:重新打开报表设计器,“显示”菜单“数据环境”在打开的“数据环境设计器”窗口中,右击学生信息表(XSXXB) 选择“属性”,则系统打开表文件XSXXB的属性对话框,在属性对话框中的“数据”选项卡上找到“Order”属性,将其修改为“学号性别”,即学生信息表是按照学院和性别顺序显示记录。(6)预览及保存报表:选择“显示”菜单中“预览”菜单项,可以查看报表的显示效果。对报表的格式满意后单击“文件”菜单中的“另存为”按钮,将修改后的报表文件存为XSCJBB1。完成的多级分组报表窗口见图10.7。图10.7 多级分组报表一个数据分组就对应一组“组标头”和“组注脚”带区。数据分组会根据创建的先后顺序在报表中编号,分组的级别越细,分组的编号就越大。若要更改组的次序:在系统菜单中选择“报表”“数据分组”,打开“数据分组”对话框,选中想移动的组左侧的移动按钮,并把它拖到新位置即可。10.3.2 打印控制1. 定义报表页面当规划报表时,通常要考虑页面的外观。例如页边距,纸张类型和所需的布局。要更改报表的页面设置,使用“文件”菜单中的“页面设置”菜单项即可。可以设置报表的左边距并为多列报表设置列宽和列间距。在这种情况下,“列”一词指的是页面横向上打印的记录的数目,不是单条记录的字段数目。“报表设计器”没有显示这种布局。它仅显示了页边距内的区域,其中包含了页面中包含一条记录的一列。因此,如果报表中有多列,当更改左边距时,列宽将自动更改以显示出新的页边距。调整列数可以设计出具有多栏格式的报表。如果要更改纸张的大小和方向设置,单击窗口中的“打印设置”按钮,在给出的“打印设置”对话框中可以修改纸张大小及进纸的方向。2. 控制报表控件的打印对字段控件,可以不输出连续记录的重复值。因此该值只对第1条记录打印一次而不出现在随后的记录中,直到值更改。例如打印学生信息表,如果其中包含“学院”字段,则可以使用不输出重复值的方式使打印出来的报表形式看起来更简洁。设置方法:双击该控件,弹出该控件的“报表表达式”对话框,从中单击“打印条件”按钮,给出“打印条件”对话框,如图10.8。在“打印重复值”区域选定“否”,然后选择“确定”按钮。图10.8 “打印条件”对话框用户可以给报表中的控件添加表达式,表达式在打印之前自动求值,如果表达式求值的结果为真(.T.),则打印该控件的值;结果为假(.F.),则不打印该字段的值。若要添加打印表达式,可在“打印条件”对话框中的“仅当下列表达式为真时打印”框中输入表达式,然后单击“确定”按钮。如在学生成绩报表(XSCJBB)中为细节区中的“性别”字段添加打印表达式为:性别=“1”,则报表中“性别”列将仅仅显示男学生信息。10.4 创建与修改标签标签就是一种打印在标签纸上的特殊格式的报表,在系统中创建和修改标签的方法和报表也基本相同。不同之处在于无论用户使用标签向导、标签设计器或是命令方式来创建标签,都需要指明使用标签的类型,它确定了在标签设计器中“细节”区的尺寸。10.4.1 创建标签的方法方法一:“文件” 菜单“新建”选择文件类型为“标签”“向导”按钮。方法二:在项目管理器的“文档”选项卡中单击“标签”选项“新建”按钮。方法三:使用Create Label 命令命令格式:Create Label 命令说明:创建一个空白的标签文件,并在标签设计器中打开它。【 例 10.9 】在命令窗口中键入:Create Label Xsxxbq则建立了一个标签文件Xsxxbq,并在标签设计器中显示空白标签。由于标签和报表的相似性,在系统中利用菜单操作标签时使用的同样是“报表”菜单,例如要输出一个标签的内容,可以使用“报表”菜单中的“运行报表”菜单项。10.4.2 标签向导【 例 10.10】利用向导创建一个显示学生基本信息的标签文件。操作步骤如下:(1)新建标签文件:“文件”菜单“新建”选择“文件类型”为“标签”“向导”按钮,系统给出数据源选择对话框,在该对话框中选择使用数据库XSXX,并在列表框中选择使用学生表(XSB),单击“下一步”按钮。(2)选择标签类型:标签类型中列出了标签中默认的一些格式。在选择标签类型窗口中,根据标签纸的大小及在标签上排列数据的形式选择标签型号。选择Avery 4143类型,单击“下一步”按钮。(3)选择标签中显示的字段:双击“学号”字段,则该字段出现在窗口右端的选定字段列表框中,单击“空格”按钮,则在选定的“学号”字段后出现一个空格标志,再双击“可用字段”中的“姓名”,其出现在“选定的字段”列表框“学号”字段后,单击回车按钮,则“选定的字段”列表框中增加一新行,然后再双击“性别”,单击“空格”按钮,双击“出生日期”字段,则要在标签中使用的四个字段和布局就排列完成了。单击“下一步”按钮。(4)选择排序条件:标签中的数据将按照排序条件设定的顺序输出。在排序条件窗口中选择按学号字段排序,即双击“可用的字段或索引标识”列表框中的“学号”字段,使其出现在右侧的“选定字段”列表框中。单击“下一步”按钮。(5)预览并保存标签文件:选择该窗口中的“预览”按钮可以查看标签文件的生成效果。如果对标签内容不满意,可以通过该窗口中的“上一步”按钮回到向导的前一操作步骤中,从而修改其中的内容。单击窗口中“完成”按钮,系统给出“保存”对话框,在该对话框中输入要保存的标签文件名“XSBQ”,单击“确定”按钮,则一个标签文件就建立完成了。10.5 在程序中调用报表和标签在VFP系统中设计的报表和标签,可以在对应的设计器中通过预览和运行报表功能,实现在设计阶段的效果查看,也可以在程序中通过命令方式来调用报表和标签。命令方式可以在命令窗口中使用,也可以在程序、在表单的某个控件代码中或将调用命令书写在菜单代码中从而实现报表和标签的调用。10.5.1 使用命令调用报表在程序中调用报表的命令为Report Form。命令格式: Report Form | ? For While Noconsole Preview In Window | In ScreenTo Printer Prompt | To File 命令说明:在命令窗口或程序中打印或预览报表。参数含义如下:(1)报表文件名:要预览或打印的报表文件名,可以包含其所在的盘符和路径。(2)?:用“?”作为报表文件名,则系统显示“打开”文件对话框,用户可以从中选择报表文件名。(3)Noconsole:当将报表文件送打印机打印时,系统会首先在窗口中显示报表的内容。使用Noconsole参数可以将屏幕上的显示关闭而直接在打印机上输出。(4)Preview In Window :在给定的窗口中显示报表内容,其中的窗口可以使用命令Define Window进行定义。(5)Preview In Screen:在VFP报表设计器预览窗口预览报表的内容。(6)To Printer Prompt:将报表送打印机输出。当使用Prompt参数时,在打印报表之前给出打印机设置对话框,通过该对话框用户可以设置当前使用的打印机及打印的页码范围和打印份数。(7)To File Ascii:将报表的输出结果存放在一个给定的文件中。当使用ASCII参数时,形成的文件是文本文件,也就是说只存放报表中的文字内容,其他如线条、图像等内容不包含在输出文件中。当不使用Ascii参数时,系统形成的输出结果文件包含在打印机中的设置,即将打印的格式字符等等信息都送到文件中保存。当省略文件的扩展名时,系统使用.Txt做扩展名。当省略、For 和While 时,系统默认范围为All。【 例 10.11 】在屏幕上显示文学院的学生情况表,命令如下:Report Form Xsbb All For Left(学号,2)=02 In Screen 【 例 10.12 】在一个定义的窗口中显示学生情况表:Define Window Xslxb From 1,1 To 35,130 Title ;学生联系情况表 Float Close Zoom Grow & 定义一个名为Xslxb的窗口Active Window Xslxb & 激活定义的窗口Report Form Xsbb Preview In Window Xslxb & 在窗口Xslxb中预览XsbbRelease Window Xslxb & 释放窗口Xslxb,结束报表预览【 例 10.13 】将学生情况表在打印机上打印出来:Report Form Xsbb To Printer 【 例 10.14 】将学生情况表的输出结果存于D:XsxxglXsxx.Txt中:Report Form Xsbb To File D:XsxxglXsxx Ascii保存在文件Xsxx中内容,可以通过Windows的记事本程序打开。10.5.2 使用命令调用标签命令格式:Label Form | ? For While Noconsole Preview To Printer Prompt | To File 命令说明:在命令窗口或程序中调用标签,命令中的参数的含义与报表文件相同。【 例 10.15 】在系统中预览标签文件Xsbq中的内容:Label Form Xsbq Preview【 例 10.16】将标签文件的内容通过打印机打印出来:Label Form Xsbq To Printer Noconsole【 例 10.17 】通过标签文件输出文学院的学生信息:Label Form Xsbq To Printer All For Left(学号,2)=01【 例 10.18 】将标签文件Xsbq的输出结果保存在D:XsxxglXxbq.Txt中:Label Form Xsbq To File D:XsxxglXxbq Noconsole同样可以使用Windows的记事本程序浏览Xxbq.Txt文件内容。习 题 十一、 用适当的内容填空1报表文件的扩展名为【 】,标签文件的扩展名为【 】。2报表由【 】和【 】两个基本部分组成。3在VFP中要快速建立一个简单格式的报表,可以使用的工具有【 】和【 】。4在报表中若插入一个文字说明,应该插入【 】控件;若打印当前时间,应该插入【 】控件。5VFP中使用【 】命令打印报表。如果要将报表文件的结果存放在一个数据文件中,应该使用的参数是【 】。6在数据分组时,数据源应根据分组的表达式创建索引,且在报表的数据环境中设置表的【 】属性。7对报表进行数据分组,报表会自动添加【 】和【 】带区。8要在报表中每行打印多条记录,可以采用【 】报表。9利用报表【 】功能,可以不打印报表就可以看到报表的外观。二、 从参考答案中选择一个最佳答案1利用报表向导定义报表时,定义报表布局的选项有【 】。A. 行数、方向、字段布局 B. 列数、行数、方向C. 列数、方向、字段布局 D. 列数、行数、字段布局2要在报表文件中添加一个由几个字段通过计算得出的计算列,则应该使用报表控件中的【 】控件。A. 域 B. 标签 C. 计算 D. OLE3要设计一个具有多栏的报表,可以使用【 】功能。A. “报表”菜单中的“数据分组” B. “页面设置”中的“列”数调整C. “报表”菜单中的“多栏报表” D. “页面设置”中的“左列宽度”4在报表中要求在每条记录信息的上端都显示其对应的字段标题,则应将这些字段标题设置在报表的【 】带区中。A. 细节 B. 标题 C. 页标头 D. 页注脚5要控制报表中字段控件是否打印重复值,可以设置其对应属性窗口中的【 】功能。A. 打印条件 B. 计算 C. 备注 D. 域控件位置 6利用“快速报表”功能建立报表文件,下列说法中正确的是【 】。A. 可以直接建立一对多报表 B. 应该首先建立一个空白的报表C. 建立的报表文件的内容不能修改 D. 建立的报表文件的布局不能修改三、 从参考答案中选择全部正确答案1报表的数据环境中存放报表的数据源,数据环境中可以添加的对象有【 】。A. 数据库 B. 数据库表 C. 视图 D. 图形文件 E. 声音文件2在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高三百日誓师课件
- 高一化学氯气课件flash
- 离婚协议档案查询及信息保密服务合同
- 高科技企业研发成果转化连带责任担保协议
- 离婚协议书范本:夫妻共同财产分割及子女抚养权归属
- 离婚协议书模板:婚姻终止、财产分割及子女抚养细则
- 智能家居产品售后维修追加服务协议合同范本
- 二手车买卖合同范本含车辆税费及过户流程
- 髂静脉血栓课件
- 喷射式发动机空气滤清器更换方案
- 制造型企业销售管理制度
- 化妆品原料留样管理制度
- 非标自动化公司技术部管理制度
- 应用型高校产教融合:模式构建与实践路径探索
- 数字时代的艺术史重构-洞察及研究
- 中医药健康知识讲座课件
- XXX学校教辅材料选用方案范文
- 零星维修工程项目方案投标文件(技术方案)
- 2025年江西省高考物理真题
- 海龟汤题目和答案(100题)
- 劳务关系工伤补偿协议书
评论
0/150
提交评论