1 / 59

第九章 报表设计

第九章 报表设计. 1. 报表概述. 2. 报表向导. 3. 报表设计器. 4. 输出报表. 目录. 报表的组成. 布局. 数据源. 9.1 报表概述. 报表文件是用于打印输出数据的。. 布局. 布局指定了如何在报表中显示这些数据,也就是在报表中显示哪些字段信息,以什么格式在什么位置显示等等。 Visual FoxPro 提供了列报表、行报表、一对多报表、多栏报表等四种常规布局。 列报表:每行是一条记录,各字段按水平方向排列,就象在浏览窗口浏览一个表时的效果,见图 9-1(a) 。

salma
Télécharger la présentation

第九章 报表设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第九章 报表设计

  2. 1 报表概述 2 报表向导 3 报表设计器 4 输出报表 目录 VFP课程建设组

  3. 报表的组成 布局 数据源 9.1 报表概述 • 报表文件是用于打印输出数据的。 VFP课程建设组

  4. 布局 • 布局指定了如何在报表中显示这些数据,也就是在报表中显示哪些字段信息,以什么格式在什么位置显示等等。 • Visual FoxPro提供了列报表、行报表、一对多报表、多栏报表等四种常规布局。 • 列报表:每行是一条记录,各字段按水平方向排列,就象在浏览窗口浏览一个表时的效果,见图9-1(a)。 • 行报表:一条记录由若干行组成,各字段按垂直方向排列,就象以append方式追加记录时的效果,见图9-1(b)。 • 一对多报表:反映一对多的关系。 • 多栏报表:可以看成是水平排列的多个行布局,同一页面上分多栏,每一栏可按列报表或行报表形式打印,见图9-1(c)。 VFP课程建设组

  5. 布局 学号  20080001 年龄  18 姓名  张三 学号  20080002 年龄  19 姓名  金明 学号  20080003 年龄  18 姓名  李芳 学号 20080001  学号 20080003 年龄 18     年龄  18 姓名 张三    姓名  李芳 学号 20080002 年龄 19 姓名 金明 学号  年龄  姓名 2008000118  张三 2008000219  金明 2008000318  李芳 (a)列报表 (b)行报表 (c)多栏报表 VFP课程建设组

  6. 数据源 • 数据源是报表数据的来源,可以是数据表、视图、查询或临时表。 • 用户在设计报表布局时,并不直接在页面上添加数据,而是为要输出的字段预留一个位置,采用添加“域控件”的方式来实现,就如同在表单设计中用文本框控件来显示某个字段一样。 • 在打印时,域控件从对应的字段中取得具体数据填充在它所在的位置。 VFP课程建设组

  7. 创建报表布局文件的方法 • 使用报表向导创建报表 • 利用快速报表设计报表 • 利用报表设计器手工设计报表。 VFP课程建设组

  8. 9.2 报表向导 • 使用Visual FoxPro提供的报表向导,只需回答一些问题,就可以快速创建报表布局。 • 启动报表向导的方法: (1)打开菜单“文件”->“新建”,在文件类型栏中选择“报表”,然后单击“向导”按钮。 (2)打开项目管理器,选择“文档”中的“报表”项,单击“新建”按钮,再弹出的“新建报表”对话框中,再单击“报表向导”按钮。 (3)打开“工具”菜单中的“向导”,选择“报表”。 (4)直接单击工具栏上的报表图标,也可以启动向导。 VFP课程建设组

  9. 9.2.1 简单报表 【例9-1】使用报表向导设计简单报表   要求:以学生成绩管理数据库中的学生表为数据源,设计一个报表用于打印学生基本信息。 操作步骤: 1.选择系统菜单“文件”->“新建”,在弹出的对话框中选择“报表”,然后单击“向导”按钮。 2.在弹出的“向导选取”对话框中选择“报表向导”,表示创建一个单表的数据报表,单击“确定”。 VFP课程建设组

  10. 3.向导步骤1-字段选取,这一步将回答报表的数据源以及显示哪些字段的数据。3.向导步骤1-字段选取,这一步将回答报表的数据源以及显示哪些字段的数据。 单击“数据库和表”下面的按钮,出现“打开文件”窗口,选择“student.dbf”作为数据源,单击“确定”,如图9-4所示。 VFP课程建设组

  11. 在“可用字段”列表中,一个个选定要在报表中输出的字段名再单击按钮,该字段就移到“选定字段”。这里我们选定学生表中前七个字段,单击“下一步”,如图9-5所示。 VFP课程建设组

  12. 4.向导步骤2-分组记录,在这个例子中不需要分组,直接单击“下一步”。4.向导步骤2-分组记录,在这个例子中不需要分组,直接单击“下一步”。 5.向导步骤3-选择报表样式,如图9-7所示 这里给出了五种样式,单击任一种样式,左上角都会显示出对应的略图,选择“帐务式”,单击“下一步”。 VFP课程建设组

  13. 6.向导步骤4-定义报表布局,如图9-8所示对话框中“列数”指定报表布局是单栏还是多栏报表;6.向导步骤4-定义报表布局,如图9-8所示对话框中“列数”指定报表布局是单栏还是多栏报表; “字段布局”决定采用行报表还是列报表;“方向”确定在打印纸上的打印方向。这里我们采用默认的列报表形式,直接单击“下一步”。 VFP课程建设组

  14. 7.向导步骤5-排序记录,这一步可以对输出记录进行排序,选定用于排序的字段添加到“选定字段”列表框中。如果直接单击“下一步”,而不选择排序,报表将按照数据源中记录的原始顺序输出。7.向导步骤5-排序记录,这一步可以对输出记录进行排序,选定用于排序的字段添加到“选定字段”列表框中。如果直接单击“下一步”,而不选择排序,报表将按照数据源中记录的原始顺序输出。 VFP课程建设组

  15. 8.向导步骤 6 - 完成,在“报表标题”中输入标题“学生基本信息表”,选择“保存报表以备将来使用”。 单击“预览”按钮,进入预览窗口,可以看到将来打印出来的页面效果。 VFP课程建设组

  16. 如果对报表满意,可以关闭预览窗口,返回报表向导对话框。单击“完成”按钮,选择合适的文件夹,并以“student1.frx”为名保存报表。 VFP课程建设组

  17. 9.2.2 分组和总结报表 • 分组报表可以对打印记录进行归类,例如,把同一个专业的学生打印在一起,或者把所学生按性别归类,就可以设计分组报表进行打印。 • 总结报表可以对打印的字段自动进行统计,例如我们希望打印出所有同学的入学平均分和最高分。 VFP课程建设组

  18. 【例9-2】设计分组/总结报表 操作步骤: • 在案例9-1的第4步,从下拉列表框1中选择专业编号,其余步骤相同,如图9-13所示,则建立了一个简单的分组报表,预览结果如图9-14所示。 • 可以看到,在同一专业编号下打印出该专业的所有学生。如果选择性别作为分组条件,则所有男生和女生将分别归为一组。也可以先按专业分组,同一专业下再按性别分组,方法是专业编号为第一层分组条件,性别作为第二层分组条件。向导允许最多三个分组层次。 VFP课程建设组

  19. VFP课程建设组

  20. 2.如果在案例9-1的第4步,单击“总结选项”按钮,则弹出如图9-13所示对话框。2.如果在案例9-1的第4步,单击“总结选项”按钮,则弹出如图9-13所示对话框。 • 图中可以看到总结提供了对字段的五种操作,这里勾选“总分”的最小值和最大值并选中“只包含总结”,然后确定。其余步骤相同。则建立了一个总结报表,如图9-14所示。 VFP课程建设组

  21. VFP课程建设组

  22. 9.2.3 一对多报表 • 一对多报表的数据源,包含父表和子表两个表。它们之间是一对多的关系。 • 例如,针对学生成绩管理系统,要求输出这样一个报表,报表上既有学生的学号和姓名,还要每个学生的成绩。这些字段分别在学生表和成绩表两个表中,学生表中含有“学号”字段,其值是不重复的,成绩表中也含有“学号”字段,但表中学号是重复的,因为每个学生有多门课程的成绩,学生表和成绩表通过学号建立起一对多的关系,其中学生表是父表,成绩表是子表。 VFP课程建设组

  23. 【例9-3】创建一份报表,要求打印出这样的效果:页面上既有学生姓名和学号,还有每个学生各门课程的成绩。【例9-3】创建一份报表,要求打印出这样的效果:页面上既有学生姓名和学号,还有每个学生各门课程的成绩。 操作步骤: 1.在“向导选取”对话框中选择“一对多报表向导”,接下来进入向导的六个步骤。 VFP课程建设组

  24. 2.向导步骤1-“从父表选择字段”,如图9-16(a)和(b)所示。打开“学生成绩管理”数据库作为报表数据源,选择表student中的学号、姓名加入到“选定字段”列表,单击下一步。2.向导步骤1-“从父表选择字段”,如图9-16(a)和(b)所示。打开“学生成绩管理”数据库作为报表数据源,选择表student中的学号、姓名加入到“选定字段”列表,单击下一步。 VFP课程建设组

  25. 3.向导步骤2-“从子表选择字段”,如图9-17所示。选择表assign,选定字段“课程”、“成绩”。 VFP课程建设组

  26. 4.向导步骤3-“为表建立关系”,如图9-18所示。4.向导步骤3-“为表建立关系”,如图9-18所示。 5.其余步骤同建立简单报表相似。 VFP课程建设组

  27. 9.3 报表设计器 • 使用报表向导和快速报表生成的报表样式较为简单,多数情况下需要进行修改才能满足实际的需要。 • Visual FoxPro提供的报表设计器是一种辅助制表工具,具有报表设计、显示和打印等功能。可以通过直观的操作来设计新报表或修改已有的报表,包括确定数据源,增加和删除一些字段,修改字型和字号,在页面上增添一些线条和图案等。 VFP课程建设组

  28. 9.3.1 报表设计器介绍 • 选择菜单“文件”->“新建”,选择“报表”文件类型后单击“新建文件”,将打开报表设计器窗口。报表设计器将页面分成不同的带区,新建的空白报表具有页标头、细节、页脚注三个基本带区,如图9-20所示。 VFP课程建设组

  29. 窗口的边框显示刻度,有利于对带区大小及页面上各种控件的位置进行调整。窗口的边框显示刻度,有利于对带区大小及页面上各种控件的位置进行调整。 • 报表设计器启动后,系统菜单中将增加报表菜单,并在显示、格式、文件等菜单中添加一些命令。另外,有报表控件工具栏、布局工具栏和调色板工具栏与报表设计器窗口相互配合,组成设计与打印报表的方便的工具,如图9-21所示。 VFP课程建设组

  30. VFP课程建设组

  31. 图9-21 报表菜单及相关工具栏 VFP课程建设组

  32. 9.3.2 创建和修改报表 • 通过报表设计器建立报表的主要步骤是: • (1)在数据环境中添加数据源; • (2)在布局带区中添加各种报表控件; • (3)预览和打印。 VFP课程建设组

  33. 【例9-4】利用“快速报表”菜单设计“课程信息报表”,包含课程号、课程名、学时数等字段。【例9-4】利用“快速报表”菜单设计“课程信息报表”,包含课程号、课程名、学时数等字段。 操作步骤: • 1.打开报表设计器窗口。 • 2.在报表设计器窗口单击右键,在快捷菜单中选定“数据环境”命令,弹出数据环境设计器窗口,如图9-22所示。 VFP课程建设组

  34. 3.在“数据环境设计器”窗口单击右键,在快捷菜单中选定添加命令,弹出打开对话框,选定“course.dbf”文件后确定。此时已经在数据环境中添加了所需的数据源。3.在“数据环境设计器”窗口单击右键,在快捷菜单中选定添加命令,弹出打开对话框,选定“course.dbf”文件后确定。此时已经在数据环境中添加了所需的数据源。 图9-22 “数据环境设计器”窗口 VFP课程建设组

  35. 4.选定报表设计器窗口,然后再在“报表”菜单中选定“快速报表”命令,将出现快速报表对话框。4.选定报表设计器窗口,然后再在“报表”菜单中选定“快速报表”命令,将出现快速报表对话框。 快速报表对话框介绍如下: • 字段布局按钮:左按钮表示按列布局,右按钮表示按行布局。 • 标题复选框:用于产生相应于每个字段的标题。 • 添加别名复选框:选择该框。 • 将表添加到数据环境中复选框:选定可将当前打开的表添加到数据环境中。 通常这三个复选框都应该选定。 VFP课程建设组

  36. 5.单击对话框的“字段”按钮,将弹出“字段选择器”对话框,从中选择所需要的3个字段,见图9-24。单击确定返回快速报表对话框,单击确定生成快速报表。5.单击对话框的“字段”按钮,将弹出“字段选择器”对话框,从中选择所需要的3个字段,见图9-24。单击确定返回快速报表对话框,单击确定生成快速报表。 图9-24 “字段选择器”对话框 VFP课程建设组

  37. 6.生成后的报表设计器窗口如图9-25所示,页标头带区列出了课程号、课程名和学时数三个标签控件,用来显示各个字段的标题。细节带区对应的列出了三个域控件用来代表不同记录的字段值。在页注脚带区分别显示了表示日期的域控件,作为显示文字“页”的标签控件和用来返回页号的域控件。 图9-25 “报表设计器”窗口 VFP课程建设组

  38. 7.选择菜单“文件”->“保存”,将弹出另存为对话框,选择合适的文件夹,并以课程信息报表.frx命名。7.选择菜单“文件”->“保存”,将弹出另存为对话框,选择合适的文件夹,并以课程信息报表.frx命名。 • 8.在报表设计器窗口单击右键,在快捷菜单选择“预览”命令,可以查看到效果。 VFP课程建设组

  39. 【例9-5】在报表设计器中修改报表“课程信息报表.frx”,要求:添加一个标题“课程学时情况一览表”;添加字段“学分”;设置合适的格式。【例9-5】在报表设计器中修改报表“课程信息报表.frx”,要求:添加一个标题“课程学时情况一览表”;添加字段“学分”;设置合适的格式。 操作步骤: • 1.打开报表文件students2.frx,启动报表设计器窗口; • 2.选择系统的报表菜单下的“标题/总结”命令,在弹出的对话框中选中“标题”复选框,然后确定,见图9-27。这时设计器窗口中添加了一个标题带区。 VFP课程建设组

  40. VFP课程建设组

  41. 3.在报表控件工具栏中选中标签控件,然后在标题带区中任意空白处单击。接下来就可输入文字,输入“课程学时情况一览表”。完成后单击页面任意空白处即可。3.在报表控件工具栏中选中标签控件,然后在标题带区中任意空白处单击。接下来就可输入文字,输入“课程学时情况一览表”。完成后单击页面任意空白处即可。 • 4.拖动带区标识栏,适当拉大页标头带区,使用标签控件输入“学分”,作为要添加的字段的标题,放置在“学时数”右边。 VFP课程建设组

  42. 5.选择域控件,在细节带区“学时数”右边按住鼠标左键适当拽出一个矩形区,弹出报表表达式对话框见图9-30。5.选择域控件,在细节带区“学时数”右边按住鼠标左键适当拽出一个矩形区,弹出报表表达式对话框见图9-30。 • 单击表达式文本框后的按钮,弹出“表达式生成器”对话框,双击字段列表框中的“学分”,确定后返回报表表达式对话框。就会看到表达式文本框中加入了所选字段,单击确定完成,见图9-31和图9-32。 VFP课程建设组

  43. VFP课程建设组

  44. 6.从文件菜单选择页面设置命令,弹出如图9-33所示的对话框,将左页边距设为2厘米。 图9-33 “页面设置”对话框 VFP课程建设组

  45. 7.单击报表标题标签,从“格式”菜单中选择“字体”命令,将字体设为“宋体、加粗倾斜、三号”;单击“课程号”标签,从“格式”菜单中选择“字体”命令,修改为要求的字型字号如改为“隶书、四号”,同样方式修改其他标签和域控件,见图9-34。7.单击报表标题标签,从“格式”菜单中选择“字体”命令,将字体设为“宋体、加粗倾斜、三号”;单击“课程号”标签,从“格式”菜单中选择“字体”命令,修改为要求的字型字号如改为“隶书、四号”,同样方式修改其他标签和域控件,见图9-34。 图9-34 设置标签和域控件的字体格式 VFP课程建设组

  46. 8.单击线条控件,在页标头的标签控件下面拖出适当长度的水平线。可用同样的方法画出第二条线,也可通过复制粘贴完成。完成后的报表设计器如图9-35所示,预览效果如图9-36所示。8.单击线条控件,在页标头的标签控件下面拖出适当长度的水平线。可用同样的方法画出第二条线,也可通过复制粘贴完成。完成后的报表设计器如图9-35所示,预览效果如图9-36所示。 VFP课程建设组

  47. 9.3.3 报表设计器高级操作 • 一、带区规划 • 默认情况下,报表设计器显示三个基本带区:页标头、细节和页注脚,案例9-5中我们还添加过标题带区。报表设计器可以建立9种类型的报表带区,有关这些带区的作用设置方法如表9-2所示。 • 以上带区中,页标头和页脚注、列标头和列脚注、组标头和组脚注总是成对出现。在一份报表中,三个基本带区总是存在的,其他带区则根据需要添加。 VFP课程建设组

  48. 表9-2 报表带区的作用及设置 VFP课程建设组

  49. 二、页面设置 • 除设置页边距外,在页面设置对话框中还包含着对页面的各种设置。 • 列数微调控制用于设定每一报表的列数。当列数大于1时,将建立多栏报表。 • 宽度微调控制和间隔微调控制指定列宽及列与列之间的距离,单位是厘米或英寸。 • 打印区域单选按钮组的可打印页单选按钮,整页单选按钮表示将整个纸张作为报表的打印区域。 • 打印顺序含按记录纵向打印和横向打印两个按钮,他们在列数大于1的时候有效,用以确定打印记录的顺序。 VFP课程建设组

  50. 三、数据环境设置 设置报表的数据环境,可以为报表提供可靠灵活的数据源。 • 数据环境通过如下方式管理报表的数据源: • (1)打开或运行报表时打开表或视图。 • (2)基于相关表或视图收集报表所需数据集合。 • (3)关闭或释放报表时关闭表。 • 使用报表向导和快速报表功能时,都会自动向数据环境中添加数据源。 VFP课程建设组

More Related