第8章设计报表和标签8.1报表与布局概述8.2创建报表布局8.3用报表设计器修改报表8.4标签设计8.1报表与布局概述8.1.1报表类型8.1.2报表布局文件8.1.3报表的设计步骤8.1.1报表类型表8-1列举了一些常用的报表布局类型:类型说明示例列逐行显示记录,每条记录的字段在页面上分组/总计报表水平方向放置存货清单行逐行显示记录,每条记录的字段在一侧竖向放置列表一对多一条记录或一对多关系会计报表多列多列显示记录,每条记录的字段沿左侧边竖向放置电话号码簿、名片标签多列显示记录,每条记录的字段沿左侧边竖直放置,邮件标签、销售总打印在特殊纸上。结标签表8-1常用的报表布局及简要说明8.1.2报表布局文件报表布局文件以.frx为扩展名,报表布局文件可以指定要用的数据字段,要打印的文件以及页中信息的设置方法。报表布局文件不存储每个数据字段的值,而是存储报表的布局和格式。每次运行报表时,根据布局文件所使用的数据源中各处字段的变化,数据字段的值也会相应地发生变化。8.1.3报表的设计步骤无论报表设计得如何复杂,一般都包括以下五步:1)选取字段2)确定创建的报表类型3)创建报表布局文件4)修改、定制报表布局文件5)预览和打印报表8.2创建报表布局8.2.1用【报表向导】创建报表8.2.2创建快速报表8.2.3用【报表设计器】创建报表8.2.1用【报表向导】创建报表【报表向导】是创建报表的最简单途径,它自动提供很多【报表设计器】的定制功能。VisualFoxPro8.0提供的报表向导有:报表向导,一对多报表向导。下面是用【一对多报表向导】来建立一个分组/总计的报表。(1)在【项目管理器】的【文档】选项卡中,选定【报表】,然后单击【新建】按钮,弹出【新建报表】对话框。(2)单击【报表向导】按钮,弹出【向导选取】对话框,选择【一对多报表向导】选项。(3)单击【确定】按钮,进入向导的第一个画面——从父表选择字段。如果当前并没有打开报表所需的数据库表,则【一对多报表向导】对话框中【数据库和表】下拉列表框内的列表显示只有【自由表】一项。通过单击【数据库和表】下拉列表框右侧的”…”按钮,可从【打开】对话框中选取要使用的表。(4)单击【下一步】按钮,进入向导的第二个画面——从子表选择字段,该画面用户选取子表中所有的报表字段,加入到【选定字段】列表框内。(5)单击【下一步】按钮,进入向导的第三个画面——为表建立关系。(8)单击【下一步】按钮,进入向导的第四个画面——排序记录,该步骤让用户确定所建报表的记录的输出顺序。注意要排序的记录只能是父表中的记录,所以选择的字段只能是父表中的字段,且最多只能选择3个索引字段。(7)单击【下一步】按钮,进入向导的第五个画面——选择报表样式。这里我们选择【账务式】。(8)单击【下一步】按钮,进入向导的最后画面——完成,在这里,用户可以修改报表的标题,选择保存的方式,并可预览刚建立的报表。单击【预览】按钮,对报表的结果进行预览,如果不满意,您可以单击上一步按钮,回到上一步操作进行修改设置,直到满意为止。在此我们选择第二个单选按钮“保存后进入报表设计器”。(9)单击【完成】按钮,弹出【另存为】对话框,输入用于报表的文件名,并单击【保存】按钮,自动生成新报表并启动报表设计器来显示报表。(10)选择【显示】菜单的【预览】命令来预览报表。8.2.2创建快速报表【快速报表】是自动建立一个简单报表布局的最迅速途径。用户可以使用系统提供的【快速报表】功能来初步生成报表。创建快速报表的步骤如下:(1)在【项目管理器】中,选定【报表】,选择【新建】|【新建报表】按钮或在主菜单中,选择【文件】|【新建】命令,在【新建】对话框中选中【报表】项并单击【新建文件】按钮,即可进入【报表设计器】。(2)在报表设计器的系统菜单上,选择【报表】|【快速报表】,在【打开】对话框中选定要使用的表,单击【确定】按钮,此时屏幕上出现【快速报表】对话框,在此对话框中选择需要的字段布局、标题和添加别名等选项。(3)如果为报表选择字段,单击【字段】按钮激活【字段选择器】。从中选择需要的字段,然后单击【确定】按钮,就生成了快速报表并且显示在报表设计器窗口。8.2.3用【报表设计器】创建报表如果不想使用【报表向导】或【快速报表】,也可以先用【报表设计器】生成空白报表布局,然后自己向里添加控件。具体操作是:在【项目管理器】的【文档】选项卡中,选定【报表】,单击【新建】按钮,在【新建报表】对话框中单击【新建报表】按钮,屏幕上即出现【报表设计器】窗口,此时的报表是一个空白报表,可以使用【报表设计器】的任何功能来添加控件和定制报表。8.3用报表设计器修改报表8.3.1报表带区8.3.2设置报表的数据环境8.3.3增添报表控件8.3.4设置报表页8.3.5控件的打印控制8.3.8数据分组8.3.1报表带区使用【报表设计器】内的带区,可以控制数据在页面上的打印位置,在【报表设计器】中,可以修改每个带区的尺寸和特征。了解带区是设计并且组织报表的基础。报表设计器一般包含三个带区,即页标头,细节和页注脚。各带区由此区底部的灰色分隔条来识别。各个带区的含义如下:【标题】区:放置报表标题、日期、页码、公司标志或围绕标题的边框等其他用于修饰报表标题的控件。规定标题区域每一报表仅打印一次。单击【报表】菜单的【标题/总结】命令,在弹出的【标题/总结】对话框中选【标题带区】选项就可以显示标题带区。【页标头】区:一般放置报表列标题或是日期、页码等控件。【页标头】区域的文字将打印在每一页报表上方。规定页标头区域每一页打印一次。若是横向排列各字段,则该区域放置字段名称。若是竖向排列各字段。则该区域无字段标题。【列标头】区:只有在使用多栏报表时才有效,在其中可放入栏标题等控件。在【文件】菜单中选择【页面设置】命令,在弹出的【页面设置】对话框中将【列数】区内的列数设置为一个大于1的值就可以显示【列标头】带区。【组标头】区:只有在使用分组操作时才出现。在【组标头】区放置分组字段和分隔线。每个分组打印一次。单击【报表】菜单的【数据分组】项,在弹出的【数据分组】对话框的【分组表达式】区中,输入分组表达式就可以显示【组标头】区。【细节】区:是报表的真正内容区。在其中应放入报表的主要数据和一些描述性文字,运行报表时,依序打印数据表中每条记录。【组注脚】区:与相应的【组标头】区相对应。放置分组总结,每个分组打印一次。【列注脚】区:与【列标头】区相对应,其中放入的控件内容将在每栏的结尾处打印出来。【页注脚】区:一般放置日期、页码、分类总计线、分类总计以及一些说明性文本。规定该区域每一页打印一次,打印在每一页报表下方。【总结】区:可放置对整个报表内容进行总结的一些控件,如各种数据的总计、平均值等。在整个报表的最末尾出现。单击【报表】菜单的【标题/总结】命令,在弹出的【标题/总结】对话框中选中【总结带区】选项,就可以显示总结带区。8.3.2设置报表的数据环境每个报表有一个数据环境。数据环境是包含打开或修改一个报表时需要打开的全部表、视图和关系。在报表数据环境中,用户可以很容易地定义用于填充报表各控件的数据源。数据环境通过下列方式管理报表的数据源:打开或运行报表时,打开报表使用的表或视图文件;基于相关表和视图收集报表所需要的数据集;关闭或释放报表时,关闭表和视图。在VisualFoxPro8.0中,可以使用数据环境设计器来设计数据环境。在【报表设计器】中,选择【显示】|【数据环境】命令,就可以打开数据环境设计器。为数据环境设计索引,可设置出现在报表中的记录顺序,从而使得数据的输出更为有效。为数据环境设置索引的方法是:在数据环境设计器的快捷菜单中,选择【属性】菜单项。在【属性】窗口中,选择对象框中的“Curssor2“,选择【数据】选项卡,然后选定【order】属性,输入索引名称,也可从属性下拉列表中选取。向数据环境中添加表或视图的方法是:选择【数据环境】菜单中的【添加】,在出现的【添加表或视图】对话框中,选定一个表或视图,然后单击【确定】按钮。8.3.3增添报表控件报表的一个最重要的、也是最基本的功能就是打印数据。在【报表设计器】里通过往报表添加一些控件,在打印报表时,就可打印这些控件所表示的内容。VisualFoxPro8.0也是通过这些控件和工具来美化报表的布局的。【报表控件】工具栏在打开报表设计器时一般会自动显示。如果没有显示,选择【显示】菜单的【报表控件工具栏】可加以显示。表8-1列出了工具栏所包含的各个按钮的功能。按钮说明功能选定对象移动或更改控件的大小。在创建一个控件后,系统将自动选定该按钮,除非选中“按钮锁定“按钮。标签在报表上创建一个标签控件域控件在报表上创建一个字段控件,用于显示表字段、内存变量其他表达式的内容。线条设计各种样式的线条矩形设计一个矩形圆角矩形设计一个椭圆或圆角矩形图片/Activex绑定控件显示一个图片或通用型字段的内容表8-1报表控件工具栏下面对几个主要控件的加入及使用方法分别予以介绍:1.【域】控件报表中可以添加用于显示表字段、内存变量和其他表达式等的域控件。加入【域】控件可以直接在数据环境中加入,方法是:先打开表的数据环境,在其中选择表或视图文件,拖动其中字段到报表布局的相应位置。也可由工具栏加入,方法是:(1)在【报表控件】工具栏中单击【域】控件按钮,在报表布局的相应位置按下鼠标左键,拖动产生一个合适大小字段框。松开鼠标左键,弹出【报表表达式】对话框。(2)在【表达式】框中可直接输入字段名、内存变量名或其他表达式,也可以单击【表达式】对话框后面的对话按钮来启动【表达式生成器】对话框以选择所需字段,最后单击【确定】按钮。(3)在【报表表达式】对话框中,单击【确定】按钮。2.【标签】控件加入【标签】控件的方法是:从【报表控件】工具栏中,选择【标签】按钮,在【报表设计器】中单击。若要对【标签】控件进行编辑修改,可以在【报表控件】工具栏中单击【标签】按钮,然后单击需编辑的标签控件,直接编辑其中文本内容。3.添加通用字段可以在报表中插入包含OLE对象的通用型字段。一个OLE对象可以是图片、声音、文档等,在这里主要介绍如何往报表里添加图片。方法是:(1)单击【报表控件】工具栏的【图片/OLE绑定型控件】按钮。(2)在报表的指定带区中拖动以确定图片大小,释放鼠标后将弹出【报表图片】对话框。(3)在【图片来源】的【文件】框中,输入图片文件名,包括完整的路径,或者单击【文件】框右边的“…”按钮,从【打开】对话框中选择图片文件。(4)单击【确定】按钮,即可插入图片。4.线条、矩形和圆角矩形控件线条、矩形和圆角矩形增强了报表布局的视觉效果,可用于改进布局的外观。(1)绘制线条线条控件用于在报表布局中添加垂直和水平直线。方法是:单击【报表控件】工具栏的【线条】按钮,然后在报表设计器待放置线条的位置拖拉以确定直线的长短。画好直线后,可以用【格式】菜单的【绘图笔】子菜单中的命令来改变线宽和线型,利用【调色板】工具来改变直线的颜色。(2)绘制矩形矩形通常作为报表控件、报表带区或整个页的边框。例如,要为前面的标题加一个矩形边框,方法是:单击【报表控件】工具栏的【矩形】按钮,然后在待放置矩形的位置拖曳以确定矩形的大小。画好矩形后,可以用【格式】菜单的【绘图笔】子菜单中的命令来改变边框的线宽和线型。此外,还可以用【格式】菜单的【填充】子菜单来设置填充模式,并确定是透明填充还是不透明填充。(3)绘制圆角矩形和圆形控件在【报表设计器】中,用户可以使用【圆角矩形】控件画出多种类型的圆角矩形、圆形和椭圆形等。方法是:单击【报表控件】工具栏的【圆角矩形】按钮,然后在待放置圆角矩形的位置拖动以确定大小。同样,画好圆角矩形后,也可以设置边框的线宽和线型,设置填充模式,并确定是透明填充还是不透明填充。5.调整控件的外形(1)更改字形可以更改每个域控件或标签控件中文本的字体和大小,也可以更改报表的默认字体。方法是:选定要更改的控件,从【格式】菜单中,选定【字体】,在【字体】对话框中设置适当的字体和磅值。(2)更改线条粗细或颜色