在Visual FoxPro中,有以下3种创建报表布局的方法:
(1)用“报表向导”创建简单的单表或多表报表。
(2)用“快速报表”从单表中创建一个简单报表。
(3)用“报表设计器”修改已有的报表或创建自己的报表。
“报表向导”是创建报表的最简单途径,它自动提供很多“报表设计器”的定制功能;“快速报表”是创建简单布局的最迅速途径;如果直接在“报表设计器”内创建报表,“报表设计器”将提供一个空白布局。
以上每种方法创建的报表布局文件都可以用“报表设计器”进行修改。
Visual Foxpro中提供了两种报表向导:一对一报表向导和一对多报表向导。
在该向导中,包括向导的选取、确定报表中的字段、确定记录分组的标准、选择报表样式、定义报表布局、记录的排序标准、确定保存方式等几个步骤,下面将以实例的形式进行讲解。
图9-2 “向导选取”对话框 |
(1)在“项目管理器”窗口中选择“报表”项,然后单击“新建”按钮,在弹出的对话框中单击“报表向导”图形按钮,然后在“向导选取”对话框中选择“报表向导”项,如图9-2所示。
(2)单击“确定”按钮,此时将打开报表向导的“步骤1—字段选取”窗口,在“数据库和表”列表框中选取所需的xsda.dbf,把要输出的字段从“可用字段”中添加到“选定字段”列表,如图9-3所示。
(3)单击“下一步”按钮,此时将打开报表向导的“步骤2—分组记录”窗口。使用数据分组的目的是将记录分类排序,在报表输出时,被分组的字段值分行显示,用户最多可以建立3层分组层次。此例中选择“籍贯”进行第一层分组,如图9-4所示。
图9-3 选取报表的字段 图9-4 设置分组记录
(4)单击“下一步”按钮,此时将打开报表向导的“步骤3—选择报表样式”窗口。报表向导中提供了经营式、账务式、简报式、带区式、随意式等几种报表样式,它们具有不同的报表风格。当选中某一报表风格时,会在左上角放大镜中看到报表的局部风格,如图9-5所示。
(5)单击“下一步”按钮,此时将打开报表向导的“步骤4—定义报表布局”窗口。报表布局分为列布局和行布局,在列布局方式中,字段与数据在同一列;而在行布局中,字段与数据在同一行。
(6)单击“下一步”按钮,此时将打开报表向导的“步骤5—排序记录”窗口。选择排序的字段,并将添加到“选定字段”列表框中(最多可选三个索引字段),并确定排序方式(升序或降序),如图9-6所示。
(7)单击“下一步”按钮,此时将打开报表向导的“步骤6—完成”窗口。在“报表标题”文本框中输入报表的标题,并确定保存的方式,如图9-7所示。
(8)单击“完成”按钮,将弹出“另存为”对话框,在其中输入保存报表名的名字,如图9-8所示。
图9-5 选择报表样式 图9-6 选择排序记录
图9-7 输入报表标题 图9-8 保存报表
(9)单击“保存”按钮,此时将自动生成报表,其预览的效果如图9-9所示。
图9-9 生成并浏览的报表
当报表的数据来自多个表时,就需要创建一对多报表,下面将以实例的形式进行讲解。
【例9-2】将学生档案表(xsda.dbf)和学生成绩表(xscj.dbf)通过报表向导的方式创建一对多报表,其操作步骤如下:
(1)在如图9-2所示的窗口中选择“一对多报表向导”项,然后单击“确定”按钮,将打开报表向导的“步骤1—从父表选择字段”窗口。选择xsda.dbf作为父表,并将编号、姓名、籍贯字段添加到“选定字段”列表中,如图9-10所示。
(2)单击“下一步”按钮,此时将打开报表向导的“步骤2—从子表选择字段”窗口。选择xscj.dbf作为子表,并将专业、语文、数学、外语和政治字段添加到“选定字段”列表中,如图9-11所示。
图9-10 选择父表字段 图9-11 选择子表字段
(3)单击“下一步”按钮,此时将打开报表向导的“步骤3—为表建立关系”窗口。分别选择两个数据表的“编号”字段建立关系。
(4)然后依次单击“下一步”按钮,并保存报表,然后进行浏览,其效果如图9-12所示。
图9-12 建立的一对多报表
除了使用报表向导外,还可以使用“快速报表”功能来创建一个格式较为简单的报表。下面以实例的形式进行讲解。
【例9-3】使用“快速报表”功能创建书籍基本资料报表,其操作步骤如下:
(1)在“项目管理器”窗口中选择“报表”项,然后单击“新建”按钮,在弹出的对话框中单击“新建报表”图表按钮,将打开“报表设计器”窗口,如图9-13所示。
图9-13 打开的“报表设计器”窗口
图9-14 选择数据表 |
(3)单击“确定”按钮,将弹出“快速报表”窗口,选择布局样式,如图9-15所示。
(4)默认情况是将数据表中的所有字段都添加到报表中,若需要选择报表的部分字段,应单击“字段”按钮,将弹出“字段选择器”窗口,然后将需要的字段添加到“选定字段”列表框中,如图9-16所示。
图9-15 选择报表的布局样式 图9-16 选择生成报表的字段
(5)两次单击“确定”按钮,此时系统将自动快速生成报表的结构,如图9-17 所示。
图9-17 快速生成报表的结构
(6)保存该报表并进行浏览,其效果如图9-18所示。
图9-18 浏览报表
通过“报表向导”和“快速报表”只能创建较为简单的报表,这远远不能满足用户的需要。而“报表设计器”不仅可以方便地设置报表数据源、更改报表布局,更重要的是可以向报表内添加各种控件,从而设计出精美的报表、分组报表、多栏报表等。
用户同样可以使用多种方法来打开“报表设计器”窗口。当打开“报表设计器”窗口后,在主菜单中将增加“报表”菜单项,同时显示出其他相关的工具栏,如图9-19所示。
图9-19 打开的“报表设计器”窗口
在设计报表之前,首先要进行报表页面的设置,在这一步中通常是考虑报表的外观、页边距、纸张类型和需要的布局。当用户单击菜单“文件”→“页面设置”命令时,系统将打开如图9-20所示的“页面设置”对话框,从而可以设置报表的列数、宽度、间隔、打印区域、左页边距等。
若在“页面设置”对话框中单击“打印设置”命令按钮,将打开如图9-21所示的“打印设置”对话框,从而可以确定打印纸张的大小、方向以及打印机等。
图9-20 “页面设置”对话框 图9-21 “打印设置”对话框
在设计报表时,通过设置数据环境为报表添加数据源。数据环境可以通过以下3个方面来管理用户的报表数据源:
(1)在报表打开或运行时,打开报表使用的表或视图文件。
(2)用相关的表或视图中的内容来填充报表所需要的数据组。
(3)在报表关闭或释放时关闭表文件。
若要设置报表的数据环境,在打开的“报表设计器”窗口中单击菜单“显示”→“数据环境”命令,将弹出“数据环境”窗口,然后添加表或视图即可。
注意:添加到“数据环境”中的表或视图,将会随着报表文件的打开而自动打开,并随着报表文件的关闭而自动关闭。
“报表设计器”窗口中可以有不同类型的带区,带区底部有分隔栏,带区名称显示在分隔栏上。表9-2给出了报表的带区说明。
表9-2 报表的带区说明
带 区 |
打印次数 |
使用方法 |
标题 |
每报表一次 |
从“报表”菜单中选择“标题/总结”带区 |
页标头 |
每页面一次 |
默认可用 |
列标头 |
每列一次 |
从文件菜单中选择“页面设置”,设置“列数>1” |
组标头 |
每组一次 |
从“报表”菜单中选择“数据分组” |
细节 |
每记录一次 |
默认可用 |
组脚注 |
每组一次 |
从“报表”菜单中选择“数据分组” |
列脚注 |
每列一次 |
从文件菜单中选择“页面设置”,设置“列数>1” |
页脚注 |
每页面一次 |
默认可用 |
总结 |
每报表一次 |
从“报表”菜单中选择“标题/总结”带区 |
图9-22 定义报表带区 图9-23 “报表控件”工具栏 |
要定义报表各带区,在“报表设计器”中双击各带区灰色间隔条,就会出现相应的对话框,如图9-22所示。在该窗口中可以定义报表带区的高度及运行表达式等。
“报表控件”工具栏在打开“报表设计器”时会自动显示,如图9-23所示。
该工具栏中各按钮的说明如下。
(1)“选择”控件:单击后可以选取报表上的对象,并对选取的对象控件进行操作。
(2)“标签”控件:创建一个标签控件,用于保存不希望改动的文本。
(3)“域”控件:创建一个字段控件,用于显示表字段、内存变量或其他表达式。
(4)“线条”控件:设计时用于在各带区内画各种线条。
(5)“矩形”控件:用于在各带区内画矩形。
(6)“圆角矩形”控件:用于在各带区内画椭圆和圆角矩形。
(7)“图片/OLE绑定型”控件:用于在各带区上显示图片或通用字段的内容。
(8)“按钮锁定”控件:选择此按钮后,允许添加多个同类型的控件,即连续绘制此类型的对象到报表上,而不需要每次都重复选取相同的对象按钮。