版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第8章:报表、标签设计章:报表、标签设计 学习要点学习要点1、报表设计器和标签设计器的使用方法。、报表设计器和标签设计器的使用方法。2、报表域控件的使用方法及页面设置。、报表域控件的使用方法及页面设置。3、报表与应用程序的集成与数据查询。、报表与应用程序的集成与数据查询。4、报表和标签的输出。、报表和标签的输出。8.1 创建报表和标签创建报表和标签报表和标签的建立方法基本上是相同的,它们都可以通过向导或设计器来创建,即创建报表可以使用“报表设计器”、创建标签可以使用“标签设计器”。用向导创建报表和标签只需按提示一步一步地执行即可,本章不再介绍。8.1.1创建快速报表创建快速报表首先打开报表设
2、计器,并向数据环境添加报表数据源,然后选择【报表】|【快速报表】VFP6会打开“快速报表”,如图8-1所示。图8-1 快速报表在这里可以选择字面布局和选择是否包含标题,如果要在报表中对表中的字段有所选择,还可以单击【字段】,打开“字段选择器”选择所需包含的字段。如图8-2所示。图8-2 快速报表的“字段选择器 设置完成后,快速报表如图8-3所示。保存该报表,则创建快速报表完成。 图8-3 生成的快速报表 8.1.2 利用报表设计器设计报表标签利用报表设计器设计报表标签 如果用户不想使用“报表向导”,也可以用报表设计器生成一个新的报表。如果已有一个空白报表或标签,或者已由“报表设计器”生成了一个
3、报表,但它不十分适合要求,则可以在“报表设计器”中修改它。下面将介绍报表设计器的使用方法。 1、进入报表设计器、进入报表设计器 进入报表设计器的方法与前面介绍的“表设计器”、“表单设计器”基本相同,其步骤如下:选定一个项目文件打开项目管理器,选择“文档”选项卡中的“报表”,再单击【新建】|【新建报表】,弹出“报表设计器”窗口。带区页标头带区细节带区页注脚带区 窗口中包含“页标头”、“细节”和“页注脚”三个带区,若使用【新建】|【报表向导】方法进入报表向导,则还会在报表的最上面增加一个“标题”带区,若在向导中加入了数据分组,还会有“组标头”和“组注脚”等带区。在“报表设计器”的带区中,可以插入各
4、种控件,它们包含报表中想要的标签、字段、变量和表达式。要增强报表的视觉效果和可读性,还可以添加直线、矩形以及其它一些控件,也可以包含图片/OLE绑定型控件。使用报表的带区可以决定报表的每页、分组及开始与结尾的式样。可以调整报表的带区的大小。在报表的带区内,添加报表控件,然后移动、复制、调整大小、对齐方式以及调整它们,从而安排报表中的文本和域控件。可以在任何带区中设置任何报表控件。也可以添加运行报表时执行的用户自定义函数。 2、设计报表、设计报表 仍以建立Student报表为例,先打开“报表设计器”,选定【显示】|【报表控件工具栏】,将“报表控件”工具栏打开,一般情况下,在打开“报表设计器”时,
5、“报表控件”工具栏会自动打开。“报表控件”工具栏中各控件的功能如图 在此工具栏上有八个按钮,其中:“选定对象”按钮:用于在报表设计或修改过程中从报表上选定一个对象。“标签”按钮:用于在设计时向报表中添加一个标签对象,用于存放文本。“域控件”按钮:用于在设计时向报表中添加一个域控件,在域控件中可以存放任何合法的VFP表达式、内存变量和字段变量等。“线条”按钮:用于在报表中设计各种分隔线。“矩形”、“圆角矩形”按钮:用于在报表中画一个矩形框或圆角矩形框。“图片/ActiveX绑定控件”按钮:用于向报表中添加一个图片或ActiveX绑定控件。“按钮锁定”按钮:使用此按钮可以锁定被选定的按钮。当要向报
6、表中连续添加几个相同的控件时,可以利用“按钮锁定”功能,即先选定要向报表中添加的对象的按钮(如矩形),然后再选定“按钮锁定”按钮,这时就可以连续向报表中添加矩形框对象。 设计Student报表步骤:第第1步:设置报表的数据环境。步:设置报表的数据环境。打开报表设计器后,选择系统菜单上的【显示】|【数据环境】在系统菜单上增加【数据环境】菜单 ,然后再选择【数据环境】|【添加】。在弹出的“添加表或视图”对话框中先在“选定”下选择“表”,然后在列表框中选择Student表,再单击【添加】,再单击【关闭】,最后关闭“数据环境设计器”。 选择【数据环境】在系统菜单上增加了【数据环境】菜单,同时打开了“数
7、据环境设计器”。单击【数据环境】菜单并选择【添加】,打开“添加表或视图”对话框。 在“添加表或视图”对话框中从“数据库中的表”下选择Student表,再单击【添加】,然后单击【关闭】,即可将Student表添加到“数据环境设计器”中。若要添加视图,可在“选定”选项组中先选择“视图”,再进行上述操作。添加后表或视图后关闭“数据环境设计器”。 第第2步:为报表添加标题。步:为报表添加标题。选择菜单上的【报表】|【标题/总结】,弹出的【标题/总结】对话框。选中“标题带区”再单击【确定】按钮在“报表设计器”中增加了标题带区欲在标题带区中加入标签“学生报表”的操作步骤:先单击“报表控件”工具栏上的(标签
8、)按钮;在标题带区中单击出现闪烁的光标。在光标处开始输入标题名“学生报表”;学生报表字号设置:先选中“学生报表”标签,再在系统菜单中选择【格式】|【字体】,在弹出的“字体”对话框中选择所需要的字体和字号以及字体样式。如选择“黑体”、“规则”、“二号”。接着再进行版面设置,选择【格式】|【对齐】|【水平居中】。 第第3步:步:设置报表的页标头。设置报表的页标头与上面设置标题的方法相同。 系部代号班级代号 学号姓名性别出生日期班级宿舍电话年龄新生类别1、在页标头中分别添加标签“系部代号”、“班级代号”、“学号”、“姓名”等。2、按住Shift键后分别单击每一个标签,将其全部选中。3、用与设置标题相
9、同的方法将页标头的字体设为 “黑体” 、“规则”、 “五号” 。4、标签布局调整。选中单个标签后用光标键可调整其位置,也可选中一批后使用光标键调整位置。第第4步:设置细节。步:设置细节。 在第3步设计完成后,可以将“数据环境设计器”打开。将要列在报表中的字段从“数据环境设计器”中逐个拖到细节带区。设置字体字号及调整布局:方法同页标题。使用报表默认的字体和字号。控件对齐:选中细节中的全部域控件,然后在系统菜单中选择【格式】|【对齐】|【顶边对齐】。 设置细节时也可以不从“数据环境设计器”中将字段拖到细节,而使用 报表控件工具栏。单击工具栏上的“域控件”按钮,再单击“按钮锁定”按钮,可以向报表中多
10、次添加域控件。然后在“细节”带区合适的位置单击添加一个域 控件。在报表上单击时系统将打开“报表表达式”生成器。“表达式生成器”按钮“格式”按钮单击“表达式生成器”按钮从“字段”列表框中选择一个字段双击单击【确定】 设置细节时也可以不从“数据环境设计器”中将字段拖到细节,而使用 报表控件工具栏。单击工具栏上的“域控件”按钮,再单击“按钮锁定”按钮,可以向报表中多次添加域控件。然后在“细节”带区合适的位置单击添加一个域 控件。在报表上单击时系统将打开“报表表达式”生成器。“表达式生成器”按钮“格式”按钮单击【确定】 设置细节时也可以不从“数据环境设计器”中将字段拖到细节,而使用 报表控件工具栏。单
11、击工具栏上的“域控件”按钮,再单击“按钮锁定”按钮,可以向报表中多次添加域控件。然后在“细节”带区合适的位置单击添加一个域 控件。在报表上单击时系统将打开“报表表达式”生成器。采用同样的方法添加其它域控件并调整域控件到合适的大小。调整域控件大小:每个域控件都有8个控制柄,按住控制柄拖动鼠标可以调整域控件的大小。现将“系代号”域控件宽度缩短。控制柄第第5步:在页注脚中设置报表页码。步:在页注脚中设置报表页码。方法基本同上一步,只不过在“表达式生成器”对话框中不是从“字段”列表框中选择,而是从“变量”列表框中选择“_pageno”。在此报表中,数据之间没有分隔线,若要求要有网格线,也可以用同上的基
12、本方法,在“页标头”中的字段名上加上方框线,在“细节”中的域控件上加分隔线。先选中页标头中的所有标签,并将其移到页标头带区的顶部,然后对细节带区中的所有域 控件进行同样的处理。再将鼠标移到页标头分隔带上,按住左键向上移动,调整页标头带区的宽度,用同样的方法调整细节带区的宽度。若要精确设置宽度,可以双击分隔带弹出对话框。在高度微调框中调整高度。再单【确定】第第5步:在页注脚中设置报表页码。步:在页注脚中设置报表页码。方法基本同上一步,只不过在“表达式生成器”对话框中不是从“字段”列表框中选择,而是从“变量”列表框中选择“_pageno”。在此报表中,数据之间没有分隔线,若要求要有网格线,也可以用
13、同上的基本方法,在“页标头”中的字段名上加上方框线,在“细节”中的域控件上加分隔线。在工具栏上单击“矩形”按钮,然后在“页标题”带区划一个矩形框。再单击工具栏上的“线条”按钮,然后在标签间划竖向分隔线。然后再在细节带区域控件的下部划一条水平线,再在域控件的中间及前后划竖向分隔线。 报表设计完成后,可以先单击系统菜单“常用”工具栏上的打印预览按钮,查看报表设计的效果,如果不满意还可以用上述方法进行修改,如果满意则可以结束“报表设计器”的设计工作,将报表保存到预定的目录中。 预览结果如下:3、修改报表文件、修改报表文件 要修改已生成的报表文件,应先将它打开。 在项目管理器的“文档”选项卡中选择“报
14、表”,并在展开的报表列表中选择要修改的报表,然后单击项目管理器上的【修改】按钮。如对刚建立的Student报表。在“报表设计器”中可以用建立报表的方法修改已存在的报表。4、规划数据位置、规划数据位置 下图说明了报表中可能出现的各类带区以及每个带区应放置的数据等典型内容。 用“报表设计器”设计报表时,报表中要用的数据以及各数据在报表中什么位置显示和打印,均要在设计时加以考虑,这就是对报表布局的规划。通过规划报表布局,可以设计和修改数据在报表页面上的位置。将数据对象放在报表中的不同的带区,将有不同的显示结果,例如,如果将数据对象放在报表的“标题”带区中,则此数据在报表中只显示或打印一次,但如果将表
15、的字段对象放在报表的“细节”带区中,则可以每条记录显示或打印一次。可以用下表决定所要使用的带区以及在带区中应放入何种控件。 8.2 报表与标签的布局和数据报表与标签的布局和数据 8.2.1 重定义页面布局重定义页面布局 在报表中,可以定义多个列,也可以改变页面中的带区的高度,从而重新设计页面布局。1、在页面上定义多个列、在页面上定义多个列若要定义多个列的报表,可以:(1)在【文件】菜单上选择【页面设置】,打开“页面设置”对话框,如图。输入页面所需的数目,该数目就是一页上将要排列显示和打印的记录列数。 输入列的宽度值。 输入所需要的列间距,若在“列数”框中只设1列,则“间隔”框为不可选。 输入报
16、表的左页边距值。 按钮用于设置报表中多列显示时数据打印的顺序 (2)根据要求在对话框中进行设置,最后选择【确定】,“报表设计器”将反映出设置的改变。 2、设置报表带区高度、设置报表带区高度在设计报表时,可以改变报表带区的高度。报表带区的高度是指一个报表带区可用的页面空间(在页边距的范围内)。例如:如果“标题”带区设置为2英寸,则“标题”将在顶部页边距下2英寸区域内显示和打印。“细节”带区指定每个要显示的记录所需要的区域。对于“组标头”和“页注脚”带区,还可以设置附加的参数。若要精确设置带区的高度,可以通过先双击相应带区的条形栏,在出现的一个与该带区对应的对话框中的“高度”框中输入所需要的高度值
17、,然后再单击【确定】。带区高度设置在前文已作说明。8.2.2 在域控件中使用表达式和函数在域控件中使用表达式和函数 在报表或者标签中,可以包含域控件来显示一些表达式。例如,表或视图的字段、内存变量,以及它们之间的运算的值等。1、添加域控件、添加域控件用户可以使用几种方法向报表中添加域控件,在上一节的报表设计中介绍了二种方法。一是直接使用工具栏上的域 控件按钮向报表中添加域 控件;二是从“数据环境设计器”中添加表的字段作为域控件。2、插入字段连接构成的域控件、插入字段连接构成的域控件把表的字段添加到报表之后,在预览时可能会看到这些字段没有按照在页面上所希望的方式显示。有时想要将几个字段连在一起显
18、示,这时可以将这些字段连成一个域表达式,同时删除多余的空格。每个控件所对应的值所需的空间可能不同,这时可以适当调整控件。若要将几个字段连接成为一个域表达式,可以按以下步骤进行: (1)选择“报表控件”工具栏中的“域控件”,在报表中插入一个域控件。将域控件的大小设为表达式求值后所必须的最小值。也可以先双击一个选中的域控件,然后在“报表表达式”对话框中的“溢出时伸展”前的复选框中做上选中标记,使它能够在表达式求值后需要更多的空间时自动伸展;若所需空间较小,则控件不会缩小,但控件的所占的空间不会比在设计时设定的更小。 在带区的最上一个域控件可设置为“相对带区顶端固定”和“溢出时伸展”。溢出时伸展浮动
19、在带区最上一个域 控件下面的其它域控件要设为浮动。(2)在“报表表达式”对话框中,选择“表达式生成器”按钮。(3)在弹出的“表达式生成器”中,从“字符串”框中选择Alltrim(expC)函数。该字符串出现在“报表字段的表达式”框中,同时选定了expC。(4)在“字段”列表框中双击想要在控件中显示的第一个字段名。该字段名将代替“报表字段表达式”框中的expC。在字段名后输入一个“+”号也可以从“字符串”函数框中选择一个“+”号。(5)重复上面的第三步和第四步来处理其它字段,直至完成表达式,再选择【确定】。(6)在“报表表达式”对话框中选择“溢出时伸展”。在显示报表时,若设计时设定的控件大小不能
20、包含其中的表达式的值,则控件自动向后伸展,直至完全能够显示整个值。为了将几个字段合为一个表达式,对每个字段名前使用ALLTRIM()函数,要注意,此函数只能用于字符型字段,若字段为非字符型字段,则还要使用转换函数,将非字符型值转换为字符型的值。而每个表达式元素之间用“+”号连接。若要在报表中操作数据或显示计算结果,则需要用到报表变量。使用报表变量可以计算与报表数据环境中提供的数据有关的各种值,并且可以用这些值来计算其它一些值。如果要使用报表变量,则必须在使用前先定义。 1、定义报表变量、定义报表变量若要定义报表变量可以使用下述方法:(1)若已经建立了报表,则先将报表打开;若还没有建立报表,则创
21、建一个新报表。(2)从系统菜单中选择【报表】|【变量】,将弹出图示的“报表变量”对话框。(3)输入一个变量名(4)输入一个变量名或一个其它的表达式,也可以单击后面的按钮,再在弹出的“表达式生成器”中用前面已经介绍过的方法创建一个表达式。 (5)如果需要,还可以从“计算”列出的七种计算方式中任选一种作为该表达式的计算选项。系统默认值为“不计算”。 (6)如果需要,也可以定义一个初始值或初始值的表达式。(7)重复操作定义完成后单击8.2.3 定义报表变量定义报表变量定义一个报表变量nCount,用存保存表中一个班级的人数第1步:在项目管理器中选择“文档”选项卡中的Student报表后单击【打开】。
22、第2步:从系统菜单中选择【报表】|【变量】,打开“报表变量”对话框。 第3步:输入报表变量名nCount。nCount第4步:输入一个变量名或一个其它的表达式 第5步:选择总和作为变量的计算方式第6步:初始值取系统默认值0。第7步:单击【确定】结束变量定义第8步:在报表的页注脚区域添加一个域控件,该域控件的表达式选择变量中已定义的变量nCount。 2、重新排序报表变量、重新排序报表变量 报表变量是根据它们出现的先后顺序来计算的,并且影响引用这些报表变量的表达式的值。例如,如果定义一个变量时,用到了另外一个变量,那么被引用的报表变量应该在引用之前先出现(先被定义)。 若要更改报表变量的顺序,可
23、以先从“报表”菜单中选择“变量”,打开“报表变量”对话框。 在“报表变量”对话框中的“变量”列表框中拖动其左边的“移动”按钮,便可以重新调整所定义的报表变量的顺序。 调整完成后按【确定】按钮。 8.2.4 域控件的格式化域控件的格式化 在插入一个域控件后,可以改变控件的数据类型和显示格式。数据类型可为:字符型、数值型或日期型。每个数据类型都有自己的格式选项,其中包括用户建立自己格式模板的选项。当打印报表或标签时,格式可以控制字段的显示。可以在“报表表达式”对话框的“表达式”框中直接输入格式函数,也可以在“格式”对话框中进行选择。下面列出一些可能遇到的典型情况:可能需要将所有的输出字母转化为大写
24、,也可能需要用逗号或小数点分隔数值输出,或用货币格式显示数值输出,将日期类型的输出转化为其他格式等等。1、报表控件的格式化选项、报表控件的格式化选项 在域控件中,可以对每种数据类型设置不同的格式选项。若要将一个域控件格式化,可以先双击“域控件”,然后在“报表表达式”对话框中,选择“格式”对话框后的按钮,为该字段选择数据类型:“字符型”、“数值型”或“日期型”,“编辑选项”区域将会显示该数据类型下的各种格式选项。如图8-18所示。最后选择对齐方式和所需的格式选项。域控件1、双击“域 控件”,如“学号”2、单击“格式”按钮字段为字符型则自动选定为“字符型”3、取消“左对齐”格式再选择“居中对齐”4
25、、单击【确定】1、报表控件的格式化选项、报表控件的格式化选项 在域控件中,可以对每种数据类型设置不同的格式选项。若要将一个域控件格式化,可以先双击“域控件”,然后在“报表表达式”对话框中,选择“格式”对话框后的按钮,为该字段选择数据类型:“字符型”、“数值型”或“日期型”,“编辑选项”区域将会显示该数据类型下的各种格式选项。如图8-18所示。最后选择对齐方式和所需的格式选项。1、双击“域 控件”,如“学号”表示居中对齐单击【确定】 返回到报表后,在域控件看不到所定义的格式,格式只在显示或打开时有效。2、在域中对齐文本在域控件中对齐文本不会改变控件在报表上的位置,只是在控件内对其内容进行格式调整
26、。有两种方法可以调整控件中内容的位置。要直接在域控件中调整文本对齐,可以:选择要操作的控件。在VFP系统菜单上选择【格式】|【文本对齐方式】。从该子菜单中选择合适的选项。 要在域中调整文本对齐,可以按上例的方法在“格式”选项中调整文本对齐方式。 3、定义域格式模板、定义域格式模板格式模板允许自己定义域中数据的格式。在“报表表达式”对话框的“格式”框或者“格式”对话框里输入一系列普通字符或代码,就可以建立各种打印格式。所输入的普通字符将与域中的值一同出现在域中,而输入的代码则用来确定字段输出的外观。例如,如果为一个十位数的数值字段指定如(999) 999-9999所示的格式模板,那么,像括号、空
27、格和破折号这样的字符将和数值型数据一起打印。4、改变字体、改变字体对于每个域控件或标签控件,可以改变字体和文本的大小,还可改变整个报表的默认字体。要在一个报表中改变字体和字号,可以:选择控件。从系统菜单中选择【格式】|【字体】,这时出现“字体”对话框。选择合适的字体和大小,然后单击【确定】。若要改变默认的字体,可以:从系统菜单中选择【报表】|【默认字体】。在“字体”对话框中,选择需要作为默认值的合适字体和大小,然后单击【确定】。只有在改变默认的字体后插入的控件才反映出新的字体设置。对于已存在的对象,须将它们全部选定,然后再使用【格式】菜单上的【字体】选项修改设置。8.3 集成查询和报表集成查询
28、和报表 8.3.1 集成查询的报表集成查询的报表 在创建好了应用程序的各个组件之后,就可以将它们集成起来。下图显示了将查询和报表添加到应用程序的一些方法。VFP中的报表在一般情况下总是和其它应用程序一同使用的,对于利用VFP开发的应用系统而言更是如此。提供给用户的是一些简单、明了、易操作的表单界面,只是由用户根据自己要达到的目的在表单上选择不同的对象达到各种要求。这就要求应用程序设计人员将报表和标签功能有机地集成到其它应用程序中。为了达到上述要求,可以将执行查询或报表的代码添加到应用程序的表单按钮、菜单上的一个选项或工具栏上的一个按钮等对象中。若要添加查询、视图或程序,可将DO或USE等命令添
29、加到表单命令按钮、工具栏按钮或菜单项的相关代码中。例如,如果想在一个表单中由用户通过单击表单上的按钮来运行一个查询、程序或打开一个视图,则可以建立如图所示的表单: 在Click事件代码中添加DO Myqu-ery.qpr(Myquer-y.qpr用实际要运行的查询文件替换) 。在Click事件代码中添加DO MyProgram(MyProgram要用实际要运行的程序文件替换) Click事件代码中添加USE MyView(Myview要用实际要打开的视图文件替换) 若将报表加入到应用程序时,有以下几种选择:如果只是想让用户简单地启动报表并得到打印结果,可以把REPORT命令添加到表单控件、菜单
30、命令或工具栏按钮中。如果报表中用到的某些变量允许用户输入,则可以像参数化查询那样从用户那里获得变量的值,或从表单中某些文本框获得变量值等。如果想让用户创建自定义报表,可以向用户提供使用报表设计器创建新报表或修改已有报表的能力。若要运行报表和标签,则要使用REPORT或LABEL命令。1、REPORT命令命令 格式:格式:REPORT FORM / FOR WHILE HEADING PREVIEW WIINDOW TO PRINTER PROMPT/TO FILE ASCII SUMMARY 功能功能:根据报表定义文件显示或打印报表。 参数描述:参数描述:指定报表定义文件的名称。:显示“打开”
31、对话框,从中可以选择报表文件。HEADING :指定放在报表每页上的附加标题文本。PREVIEW WIINDOW :以页面预览方式显示报表,而不把报表送到打印机中打印。TO PRINTER PROMPT:把报表送到打印机打印。包含PROMPT子句在打印前显示设置打印机的对话框。可调整的打印设置取决于当前安装的打印机驱动程序。TO FILE ASCII:指定报表要送往的文本文件。包含ASCII子句可用报表定义文件创建一个ASCII文本文件。SUMMARY:不打印细节行,只打印总计和分类总计信息。例如,要将当前目录中的Student报表送到打印机打印出来,可使用下面的命令:REPORT FORM
32、Student TO PRINTER PROMPT功能:功能:根据表文件和标签文件打印标签。参数描述:参数描述:FORM :指定要打印的标签所对应的标签定义文件名。若标签定义文件不在当前目录中,则必须指定目录。FORM :显示“打开”对话框,从中可以选择一个已经定义了的标签定义文件。PREVIEW :在预览窗口中显示标签而不打印。若包含可选项NOWAIT,则在运行时VFP将不等待关闭“页面预览”窗口,而是在该窗口打开的情况下继续往下执行。SAMPLE:显示并打开一个样本来检验标签的对齐方式。TO PRINTER PROMPT:把标签送到打印机打印。包含PROMPT子句在打印前显示设置打印机的对
33、话框。2、LABEL命令命令 格式:格式:LABEL FORM /FORM FOR WHILE PREVIEW SAMPLE TO PRINTER PROMPT8.3.2 用查询收集用户输入用查询收集用户输入 以打印学生情况报表为例,说明用查询收集用户输入的方法。在Student.dbf表中如果有很多的记录,而在打印报表时又不想一次将所有记录打印出来,而只想以班级为单位有选择性的打印,则可以先建立表单如图所示。 在Combo1组合框中,将RowSourceType属性设置为3-SQL语句,将RowSo-urce属性设置为:SELECT DISTINCT 班级 FROM STUDENT INTO
34、 CURSOR BJCX 通过SQL查询语句,将Student表中所有的班级在Combo1组合框中列出来供用户操作时进行选择。其中BJCX为保存查询结果的临时表文件名,若省略INTO CURSOR BJCX子句,则在执行表单时,SELECT命令执行的结果将会在浏览窗口中显示。 在【打印】按钮的Click事件中添加如下代码:SELECT * FROM STUDENT WHERE STUDENT.班级=THISFORM.;COMBO1.VALUE INTO CURSOR CURSOR_BJ &用查询收集用户的输入*以下程序是由用户选择是预览报表还是要打印报表*MM=MESSAGEBOX(想
35、要预览“STUDENT”报表吗?,35,打印Student报表)IF MM=6 REPORT FORM D:XSGLXTREPORTSSTUDENT PREVIEWELSE IF MM=2RETURN ENDIFENDIFMM=MESSAGEBOX(想要打印“STUDENT”报表吗?,33,打印Student报表)IF MM=1REPORT FORM D:XSGLXTREPORTSSTUDENT TO PRINTER PROMPT*上一行命令中加下划线的部分是指定要运行的报表文件名,若不在当前*目录下,则要加上路径。ELSE RETURNENDIF要注意:建立的Student报表要将其中数据环
36、境中的表移去,即在报表的数据环境中不含有任何表。对于本例,也可以不用SQL查询语句而直接使用REPORT命令,即将SELECE命令删除,在REPORT语句中增加下列可选项:FOR 班级=THISFORM.COMBO1.VALUE其中:THISFORM.COMBO1.VALUE是对用户选择的引用。即通过REPORT命令的条件子句,对表中的记录进行筛选,从而达到按用户选择的班级输出报表的目的。8.4 报表和标签的输出报表和标签的输出 8.4.1 为控件设置打印选项为控件设置打印选项 总的来说,控件的位置和它所处的带区的位置决定了它打印时的位置和时间。除此之外,还可以为每个控件设置特定的打印选项。每
37、个控件都有一个默认的尺寸,该尺寸或是由它的值(对于字段或标签来说)决定,或是在创建该控件的时候确定(对于线条、矩形或者图形来说)。控件在页面上的长度指定了该控件的显示宽度。由于有些控件的值根据记录的不同而不同,可将控件的高度设置为可向下伸展,以显示整个的值,否则,有些数据将在显示的时候被截断。除了标签控件之外,所有的控件的大小均可变。1、打印变长度值的控件、打印变长度值的控件为了使控件尽可能少的占用报表的地方,可将其设置为可伸展的。例如,一个表达式的值可能依记录的不同而不同,这时,最好不要在报表上为这个控件分配一个固定的可容最长记录值的空间,而应将控件设置为可伸展,即可容纳所有的数值。对于该控
38、件下方的控件,可将其设置为可向下浮动的。注意:注意:在如下情况下,某些数据在打印时会被覆盖:(1)将一个域设置为相对于带区底端固定,同时在这个域的下面还有一个域,设置为相对于带区顶端固定并且选择了溢出时伸展选项;设置为相对带区底端固定高度就被固定了带区向下浮动时没有空间(2)将一个域设置为相对于带区顶端固定,同时在这个域的上面还有一个域,设置为相对于带区顶端固定并且选择了溢出时伸展选项。 设置为相对带区底端固定带区高度被固定没有溢出时伸展的空间2、不输出重复值、不输出重复值对于域控件,可以不输出连续记录的重复值。也就是说,如果某域中的同一个值在连续的记录中重复出现,则只须在第一次出现时打印该值
39、,在后面的记录中不打印该值,直至数值发生改变。若要不输出重复值,可以先双击该控件,在显示控件的对话框中选择“打印条件”以显示“打印条件”对话框,在该对话框中的“打印重复值”区域,选择“否”,然后选择【确定】。1、双击域 控件如“系部代号”2、单击【打印条件】6、在“文本”对话框中单击【确定】7、预览显示报表数据3、选择“否”5、单击【确定】4、选择“在新页/列的第一个完整信息带内打开”和“当细节区数据溢出到新页/列时打印”系部代号与上一条记录相同不打印选择“在新页列的第一个完整信息带内打印”指定换页(或列)后,遇到第一个新记录时,打印重复值。选择“当细节区数据溢出到新页列时打印”指定当细节带区
40、内容溢出到新页(或列)中时,输出重复值。3、建立打印表达式、建立打印表达式可以为控件设置表达式,该表达式在打印之前被计算出来。如果表达式的值为“假”,则不打印该字段。添加表达式之后,在“打印条件”对话框中除了“若是空白行则删除”选项外,其他选项全部无效。若要添加一个打印表达式,可以先双击该控件,再选择“打印条件”,然后在“仅当下列表达式为真时打印”框中,输入一个表达式。或者单击对话按钮,使用“表达式生成器”建立一个表达式,最后选择【确定】。4、不打印空行、不打印空行对于报表中的某些域控件,记录中往往会没有数值。默认情况下,VFP将为那些空的域保留区域。可以将这些空白的区域清除,使所显示的信息更
41、为理想、更为连续。若要不打印空行,可以先双击在报表中可能会引起空行的控件,再选择“打印条件”,然后选择“若是空白行则删除”,最后选择【确定】。如果一行中所有域的值经计算后都为空,则VFP从报表中删除此行。如果不打印该域,或者域中的值为空,VFP将会检查该行的其他控件:找不到的话,此行被删除。如果没有选择该选项,而且该行中没有其他的控件,那么会打印一个空行。 8.4.2 为组设置打印选项为组设置打印选项 在报表中,可以对组的打印方式进行控制。有时可能希望同一个组中的内容不要跨页显示;有时可能希望控制是否打印组标头。1、设置组的分页及组标头选项、设置组的分页及组标头选项 (1)在系统菜单中选择【报
42、表】|【数据分组】 在“数据分组”对话框中,除了可选择(或输入)用于分组的域或表达式外,还可以对组的分页选项进行设置 。如:Left(学号,2)对组(及其标头)的显示可能有特别的要求。比如,可能希望一个组不要横跨两列(对于多列的报表);不要纵跨两页;或者每一组的页码都从1开始重编。该对话框提供了四个选项来完成这些任务。2、防止出现孤立的组标头、防止出现孤立的组标头设置合适的值,可以防止出现孤立的防止出现孤立的组标头组标头如果标头和底部的相对位置比所规定的尺寸(用英寸或厘米表示)要小,VFP会将标头移到新的一页中打印。注意:为了给孤立控件确定一个比较理想的值,可以将组标头带区的高度扩大到细节带区高度的一至三倍。在组纵跨两页时,可能需要在新的一页中重复打印组标头,将其显示在连续信息的顶部。如果报表中存在嵌套的多个数据组,那么在连续页中,标头应是嵌套结构中最内层的组的标头
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度虚拟现实设备研发与委托生产合同
- 2024年度机械设备买卖合同样本
- 2024年度人力资源外包与招聘服务协议
- 2024年度物流园区建设与运营合同
- 2024年员工保密协议模板
- 2024年度自建房施工合同终止合同
- 2024年工程预付款资金监管协议
- 2024出版社与作者之间的出版合同
- 2024年度企业文化建设合作协议
- 2024年建筑企业与监理单位服务协议
- 中国女性生理健康白皮书
- 天然气巡检记录表
- 甲苯磺酸瑞马唑仑临床应用
- 民法典讲座-继承篇
- 外包施工单位入厂安全培训(通用)
- 糖尿病健康知识宣教课件
- 客户接触点管理课件
- Python语言学习通超星课后章节答案期末考试题库2023年
- 医学-心脏骤停急救培训-心脏骤停急救教学课件
- 高中英语-Book 1 Unit 4 Click for a friend教学课件设计
- 年产30万吨碳酸钙粉建设项目可行性研究报告
评论
0/150
提交评论