




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第10章 数据报表的设计数据库编程技术110.1 数据环境设计器数据库的数据管理及维护、数据的查询等工作,都会形成各种数据报表,并希望以打印预览的形式显示,或形成打印文档,可直接打印出来。所以数据报表是数据库应用程序中非常重要的部分。数据报表设计器(Data Report Designer)是VB6.0新增的功能,和数据环境设计器 (Data Environment Designer)配套使用,能完成多种类型报表的设计,是高效的报表设计工具。数据环境设计器(Data Environment Designer)是一个可视化的编程环境,可以在设计时创建数据环境及ADO对象。可以设置连接对象和命令对
2、象的属性值、编程响应ADO事件,也可以将数据环境设计器中的对象拖动到数据报表中来创建数据绑定控件。210.1.1 数据环境设计器的创建在使用数据环境设计器时,必须在工程中添加并引用Data Environment对象。创建Data Environment对象有以下方法:采用新建数据工程的方法在已有工程中添加Data Environment对象的方法。1新建数据工程利用新建数据工程的方法,VB可以在工程中自动添加Data Environment对象和数据报表设计器(DataReport)对象。3新建数据工程的操作过程如下:启动VB6.0,新建一个工程,或在VB6.0环境中执行菜单:文件新建工程,
3、打开新建工程对话框如图10-1,选择数据工程项,单击确定按钮,即可创建数据工程。图10-1 在新建工程对话框中选择数据工程项图10-2 数据工程的工程资源管理器窗口4此时观察工程资源管理器窗口,可见工程中除了含有一个窗体(默认名称: frmDataEnv)一个数据环境设计器(默认名称:DataEnvironment1)一个数据报表设计器(默认名称:DataReport1)。Visual Basic 6.0还在标准工具箱中自动添加了可以在数据工程中配合使用的ActiveX控件:ADODC、DataGrid、DataList、DataCombo等。52在现有工程中添加数据环境设计器在现有的标准工程
4、中,也可以利用菜单命令添加数据环境设计器对象。操作方法如下:执行菜单:工程添加DataEnvironment可以添加一个数据环境设计器(默认名称:DataEnvironment1)到本工程中。创建数据环境设计器后,可以用它来创建Connection对象以建立对数据源的连接,创建Command对象以返回记录集;还可以拖动Command对象或Command对象的Field对象来创建报表。610.1.2 连接对象(Connection)数据环境通过连接(Connection)对象与数据库发生联系,从而访问该数据库,因此利用数据环境建立到数据库的访问,首先要创建Connection对象。 在一个数据环
5、境设计器中允许创建一个或多个Connection对象,每个Connection对象代表一个与数据库的连接,可以连接到本地数据库或网络数据源。在图10-2所示的 工程资源管理器 窗口中,双击数据环境设计器DataEnvironment1,可打开该设计器窗口,可见其中自动已有一个连接对象(默认名称:Connection1),可以将该连接对象连接到某个DSN数据源。图10-3 数据环境窗口中添加连接对象71添加连接对象添加Connection对象的方法是:在图10-3所示的窗口中,鼠标右击数据环境设计器名称,在弹出的快捷菜单中,选择添加连接项,即可添加一个新的连接(默认名称Connection2)。
6、也可以在数据环境设计器窗口中单击工具栏中的添加连接 (图10-3中所示工具栏中的左边第一个) 按钮,添加一个新的连接对象。82设置连接对象到数据源的连接下面以连接到“成绩管理”数据库为例,介绍连接数据源的方法。 例10-1 将Connection对象连接到“成绩管理”数据库。设计过程如下:(1)建立ODBC数据源前边已经对“成绩管理”数据库配置了ODBC数据源,系统DSN名为cjgl 。(2)为Connection1重命名重命名是为了增强可读性,使人一看到该连接的名称就知道其所连接的是哪个数据库。操作方法是:在当前数据环境设计器窗口中,右击连接对象Connection1,在弹出的快捷菜单中选择
7、重命名命令,将连接的名称改为:ChengJiGL。9(3)连接数据源数据环境设计器窗口中,右击连接对象ChengJiGL,在弹出的快捷菜单中选择属性命令,打开数据连接属性对话框。在连接选项卡的1.指定数据源框中,选中使用数据源名称项,并在其下拉列表中选择数据源cjgl。单击测试连接按钮,将显示“测试连接成功”提示信息框,然后单击确定按钮即可。图10-4 连接数据源1010.1.3 命令对象(Command)完成了Connection与数据源的连接后,要想操作数据源中的数据,还要创建命令对象(Command)。命令对象可以基于数据库对象(如表、视图、存储过程)或者SQL查询,返回Recordse
8、t对象中的记录,也可以进行数据操作或处理数据结构。在一个Connection对象中,可以建立多个Command对象,每个Command对象都要和Connection对象相联系,它具体定义了如何从Connection对象所连接的数据源中返回数据。11若一个Command对象返回数据,则称之为“记录集返回”,意为该命令从数据源中返回数据,可以通过DataEnvironment的Recordset对象访问这些数据。若Command对象不返回数据,则称之为“非记录集返回”,表示该命令是一个存储过程或执行诸如Insert Into、Update、Delete等动作查询的SQL语句,不立即返回记录集数据。
9、可以创建子命令对象,通过父命令和子命令对象之间的关系,来以层次结构的形式获取一组相关的数据。121添加Command对象添加Command对象的方法是:在数据环境设计窗口中,鼠标右击Connection对象名称,在弹出的快捷菜单中,选择添加命令项,即可添加一个新的命令对象(默认名称Command1)。 2为Command1重命名右击Command1命令对象,在弹出的快捷菜单中选择重命名命令,将命令对象的默认名称Command1改为所需的名称 也可以在弹出的快捷菜单中选择属性命令,打开属性对话框,在该对话框中更改命令的名称。 3设置Command对象的数据源建立了命令对象后,要设置其数据源属性,
10、使其返回不同的记录集或进行不同的操作。13例10-2 建立命令对象,返回课程信息表中的满足条件“学时=50”的所有记录。建立另一个命令,返回学生信息表的所有记录。设计过程如下:(1) 在例10-1的工程中,打开数据环境设计窗口,右击连接对象GhengJiGL,在快捷菜单中,选择添加命令,即可见该窗口中多了一个Command1对象。(2)设置命令对象的属性:右击Command1对象,在快捷菜单中,选择属性命令,即可打开属性对话框如图10-5。图10-5 命令对象的属性对话框14在通用选项卡中,将命令名称Command1改为kecheng ;在连接下拉列表框中选择连接对象名ChengJiGL;选择
11、数据源时,可以选择数据库对象,也可以选择SQL语句作为命令对象的数据源。根据本题意,要求返回课程信息表中的满足条件“学时=50”的所有记录,应选择SQL语句选项,并在下边的文本框中输入SQL查询语句:“Select * From 课程信息表 Where 学时=50”最后单击确定按钮即可。完成命令对象的连接后,在数据环境窗口中展开命令对象kecheng节点,可以显示出该命令对象所包含的Field(字段)对象(如图10-6所示)。图10-6 建立的kecheng命令对象15建立另一个命令,返回学生信息表的所有记录。若想返回一个表的所有记录,则可以在图10-5所示对话框中选中数据库对象选项,在其旁边
12、的下拉列表中选择“表”,然后在下边的对象名称旁的下拉列表框中选择所要的表名称即可。例如:在本例中再添加一个命令对象,返回学生信息表中的所有记录。操作过程如下:在图10-6所示的数据环境窗口中右击连接对象GhengJiGL,在快捷菜单中,选择添加命令,即添加一个Command1对象。16 右击Command1对象,在快捷菜单中,选择属性命令,打开属性对话框如图10-5。在通用选项卡中,将命令名称Command1改为XueSheng;确认连接对象名为ChengJiGL;选择数据源时,选择数据库对象选项,在其旁边的下拉列表中选择“表”,然后在下边的对象名称旁的下拉列表框中选择“学生信息表”。最后单击
13、确定按钮,关闭属性窗口。此时在数据环境窗口中,可以看到新建立的命令XueSheng。1710.1.4 数据环境设计器的简单应用用数据环境设计器可以创建数据窗体,数据报表、图表等,也可以对数据环境设计器所创建的ADO对象进行编程。1从数据环境创建窗体当设置好数据环境中连接对象及命令对象的数据源后,可以象其它数据控件一样,将数据绑定控件与其绑定,显示数据源的数据。使用数据绑定控件创建数据窗体有两种方法:通过设置绑定控件的属性与数据源绑定;也可以从数据环境设计器中直接拖动命令对象或字段对象到窗体上,快速地创建数据窗体。18例10-3 利用数据绑定控件创建课程信息显示窗体。在例10-2的数据工程中的窗
14、体上,添加5个标签控件,分别设置其Caption属性为课程信息表的各个字段的名:课程编号、课程名称、学时、学分、教师编号。再添加5个文本框,分别用来显示各字段的数据,将其绑定到数据源的方法是:设置DataSource属性为:DataEnvironment1设置DataMember属性为:kecheng (即:命令对象的名称)设置DataField 属性为:所要显示字段的名称。将该窗体设为启动窗体,运行程序,结果如图10-7所示。19例10-4 用拖动对象方法创建数据窗体。在上例工程中,添加一个新窗体,名为Form1,Caption属性设为:课程信息。打开数据环境设计器窗口,用鼠标选中命令对象k
15、echeng,并按住鼠标左键,将命令对象kecheng拖动到窗体上。可以看到VB将自动在窗体上创建数据绑定控件,并自动设置DataSource属性、DataMember属性和DataField 属性,结果如图10-8所示。适当调整控件的大小,字体的属性等即可。将该窗体设为启动窗体,运行程序,可见文本框控件中显示课程信息表的一条记录信息。2010.2 DataReport设计器概述数据报表设计器(Data Report Designer)是一种简单实用、功能较为齐全、高效的报表设计工具。它和数据环境设计器(DataEnvironment)配套使用,不但可以形成一般形式的报表,而且还可以设计分组报
16、表及多种复杂格式的报表。报表设计主要包括数据源连接和报表的布局两项工作。报表的数据源可以通过数据环境设计器进行连接,而报表的布局可以通过在数据报表设计器中,用鼠标拖动的方法进行设计。2110.2.1 DataReport设计器介绍1创建数据工程 在 “新建工程”对话框中,选择数据工程,可在 工程资源管理器窗口中看到:一个DataEnvironment1、一个DataReport1和一个窗体名为frmDataEnv也可以在现有的工程中添加DataEnvironment 和DataReport,操作如下: 执行菜单工程添加DataEnvironment执行菜单工程添加DataReport 在工程资
17、源管理器窗口中,双击DataReport1, 打开报表设计器,如图10-13所示。图10-13 DataReport的基本分区222 DataReport 的各分区的功能(1)报表的基本分区DataReport1基本分区有:一个页标头区、一个细节区、一个页注脚区(见图10-13)。页标头/页注脚区:页标头和页注脚出现在每页的顶部和尾部。相当于页眉和页脚。页标头:可用来显示报表的名称、当前页的内容,及“续表”等。页注脚:可显示当前页码 和总页数等。细节区:是报表的数据区,显示记录的数据的详细信息。细节区紧接着分组标头或页标头,区域长度可伸缩,有多少记录就显示多少行。23(2)DataReport
18、 的更多的分区为显示DataReport的所有区域,可操作如下:1)在DataReport窗口上右击鼠标,在快捷菜单上选择显示报表标头/注脚命令,打开报表标头/注脚区。2)在DataReport窗口上右击鼠标,在快捷菜单上选择插入分组标头/注脚命令,打开分组标头/注脚区。结果显示报表的更多分区如图10-14所示。图10-14 DataReport的所有分区24报表标头/报表注脚区:报表标头:出现在一组报表的第一页的开始处。用来显示对整组报表进行说明的文字。报表注脚:出现在一组报表的的最后。一般放总结性文字,如对该组报表的数据统计和分析等内容。25分组标头/分组注脚:在分组报表中,所有内容都按照
19、某一字段分成若干组显示。例如学生成绩,可按学生的专业进行分组显示,以清楚地看出每个专业的学生的学习情况。分组标头:出现在每一组数据的开始,常用来显示分组字段的内容,或说明文字。分组注脚:出现在每组数据的结尾处,用来显示对该组数据的统计和汇总。也可显示说明性文字。2610.2.2 用DataReport设计器创建报表 1. 创建报表的方法创建打印报表的一般步骤如下:(1)在DataEnvironment1 中建立数据源连接 ,并创建命令对象。 (2)为DataReport1 设置属性,使之与命令对象绑定,即设置 DataReport1的以下两个属性:DataSource:指定数据环境设计器的名称
20、。 DataMember:指定数据环境设计器中的某命令对象名,即绑定到该命令对象。 (3)设置报表的结构,将命令对象拖放到DataReport1 的对应区域中,调整报表的布局。 (4)预览和打印报表。 272 创建报表举例例10-6 创建学生信息表中所有记录的打印报表。(1)建立数据源连接 ,并创建命令对象打开例10-5工程,若工程中没有数据环境设计器和数据报表设计器,需要自己进行添加。将连接对象ChengJiGL连接到数据库cjgl ,创建命令对象:XueSheng, 返回所有学生信息。由于例10-5工程,已经连接好数据源,并已经创建好了XueSheng命令,所以不必重新连接。 28(2)
21、创建报表,并绑定到XueSheng命令上,用于显示XueSheng命令对象返回的记录:双击DataReport1,打开该报表设计器; 在DataReport1的属性窗口中,绑定数据源,即设置其属性如下: DataSource:DataEnvironment1DataMember: XueSheng (在数据环境中建立的命令对象)29(3)设置报表的结构,调整报表的布局在DataReport1报表设计器窗口中右击鼠标,在显示的快捷菜单中选择检索结构,自动检索其所连接的XueSheng命令对象的结构;用鼠标左键将命令对象XueSheng 拖放到DataReport1 报表设计器的“细节”区中这时在
22、报表细节区可以看到XueSheng命令返回的记录集的各个字段名的标签控件和用于显示记录值的文本框控件;30将每个字段名的标签拖放到页标头区中适当的位置,调整细节区中各文本框控件到适当位置 在页标头区中,添加一个标签控件,用于显示标题文字“学生信息表”(4) 显示报表的打印预览执行菜单命令工程DataProject属性,将DataReport1设为启动对象;运行程序,显示报表的打印预览效果如图10-16。或执行:DataReport1.Show图10-16 运行显示报表的预览效果31例10-7显示学生的姓名、课名、成绩的打印报表。(1)在例10-7工程中,双击DataEnvironment1打开
23、数据环境窗口,添加命令对象ChengJi,操作如下:右击连接对象ChengJiGL, 在显示的快捷菜单中选择添加命令,设计器窗口中将出现Command1 命令对象;右击Command1 命令对象,选择属性 命令,打开该命令的属性页; 在 通用选项卡中,将命令名称改为“ChengJi” 单击SQL 描述 单选钮,键入SQL 语句:Select 姓名,课程名称,成绩 From 学生信息表,课程信息表,成绩表 Where 学生信息表.学号=成绩表.学号 And 课程信息表.课程编号=成绩表.课程编号;32(2)创建成绩报表在本工程中,添加一个报表控件DataReport2: 执行菜单命令: 工程添加
24、DataReport将DataReport2绑定到命令对象ChengJi上:双击DataReport2 , 打开该报表设计器;在DataReport2 的属性窗口中,设置属性: DataSource : DataEnviornment1DataMember: ChengJi33(3)设计报表的结构、布局:右击DataReport2 报表设计器,选择检索结构 ,自动检索命令对象ChengJi 的结构;将命令对象ChengJi拖放到DataReport2 报表设计器的 “细节” 区中;将每个字段的标签拖放到 “页标头” 区中适当的位置,调整细节区中各文本框控件到适当位置。在页标头区中添加一个标签控
25、件,显示报表的标题,将Caption设为“学生成绩单”,字号:二号。34(4)用窗体上的按钮,显示报表的打印预览:在窗体上添加一按钮Command2,标题设为:成绩报表编写按钮的单击事件:Private Sub Command2_Click() DataReport2.ShowEnd Sub将窗体设为启动对象运行程序,单击该按钮,将显示报表的打印预览效果,如图10-17所示。图10-17 学生成绩报表3510.2.3 根据输入的参数创建报表可以将一个变量的内容或将文本框中输入的内容作为参数传递给数据环境设计器中的查询。下面将举例说明怎样向一个用于报表生成的查询中传递参数。【例10.8】打印报表
26、中显示指定姓名的学生记录。要求:在文本框中输入姓名,单击打印预览按钮,将显示报表,其中显示所输入姓名的学生记录。36设计过程如下:(1)启动VB,新建一个数据工程。此工程中将自动包含一个窗体,一个DataEnvironment1和一个DataReport1。(2)建立数据源连接:打开DataEnvironment1窗口,将Connection1改名为:ChengJi;鼠标右击该连接对象,在弹出的快捷菜单中选择属性命令,打开属性窗口;选择连接选项卡,选择数据源名称为前边所配置好的ODBC数据源:cjgl。单击测试连接按钮,提示“连接成功”信息即可。37(3)添加命令对象:鼠标右击连接对象Chen
27、gJi,在弹出的快捷菜单中选择添加命令命令对象Command1,改名为:XueSheng;右击该命令对象XueSheng,在弹出的菜单中选择属性,打开属性窗口选择SQL语句单选钮,输入下面的SQL语句:Select 学号,姓名,性别,生日 From 学生信息表 Where 姓名 = ? 图10.18 命令对象属性SQL语句38(4)在属性窗口中单击参数选项卡,设置有关参数如图10.19。图10.19 命令对象的参数设置39(5)打开DataReport1设计窗口,设置属性如下:DataSource:DataEnvironment1DataMember:XueSheng右击DataReport1
28、设计窗口中细节区,在弹出的菜单中选择检索结构命令,然后将图10.20中的命令对象XueSheng拖放到细节区,调整好报表的布局 40图10.22 窗体的设计(6)设计窗体如图10.22。添加一个文本框Text1添加按钮, 改名为CmdPrint,Caption属性为:打印预览。添加一个标签Label1,设置标题属性为:输入姓名。编写按钮的单击事件过程代码如下:Private Sub CmdPrint_Click()DataEnvironment1.XueSheng Text1.TextDataReport1.ShowEnd Sub 41运行程序,在文本框中输入姓名,如图10.22,单击打印预览
29、按钮,显示的打印报表如图10.23所示。 图10.23 打印报表运行结果42若想实现:输入某个姓(例如:王)则打印所有姓王的学生记录,要用模糊查询功能。可对该例做如下改进:将图10.20中输入的SQL语句中的“=”号改为 “Like” ,即输入的SQL语句如下:Select 学号,姓名,性别,生日 From 学生信息表 Where 姓名 Like ? 编写打印预览按钮的单击事件过程代码如下:Private Sub Command2_Click()DataEnvironment1. XueSheng Text1.Text & “%”DataReport1.ShowEnd Sub 运行程序,在文本
30、框中输入:王,单击打印预览按钮,显示的打印报表如图10.24所示。图10.24 打印报表运行结果4310.3 创建分组报表在DataEnvironment中,可以用层次结构的命令对象建立分组报表,或用分组命令对象建立分组报表。10.3.1 用关系层次结构的命令对象建立分组报表如果将数据显示成如图10.25所示,即按课程名称分组显示,则可以使数据关系层次清晰。这就需要建立关系层次结构的命令对象,它适合于多表查询的情况。 图10.25 分组显示成绩报表44【例10.9】建立按课程名称分组的成绩报表。(1)建立命令对象,取名为“成绩分组区”该部分返回的记录字段应该是用于分组的字段。操作步骤如下。 打
31、开上例工程,在“DataEnvironment1”中的连接对象ChengJiGL中,添加新命令,然后右击该命令,选择“属性”菜单,打开“属性”对话框(如图10.26); 在通用选项卡中,将命令名称设为“成绩分组区”,其数据源设为SQL语句: SELECT 课程编号, 课程名称 FROM 课程信息表“成绩分组区”命令对象的属性设置结果如图10.26所示,单击确定按钮,关闭属性对话框。图10.26 “分组成绩表”命令对象的属性设置45(2)在“成绩分组区”下建立子命令,取名为“成绩细节区”操作步骤如下。在DataEnvironment1中右击“成绩分组区”命令对象,在弹出的快捷菜单中选择添加子命令
32、,此时可见在“成绩分组区”命令对象下出现子命令对象,默认名为Command1。、用鼠标右击该子命令对象,在弹出的快捷菜单中选择属性命令,打开属性对话框,在通用选项卡中,将命令名称改为“成绩细节区”;在数据源选择区域中,选择SQL语句单选按钮,单击SQL生成器按钮,将打开数据视图对话框,如图10.27所示,并打开SQL生成器窗口,如图10.28所示。46用鼠标左键将数据视图对话框中的“学生信息表”和“成绩表”分别拖到SQL生成器上部的输入源窗格中,并在该窗格中选择“学生信息表”中的“学号”、“姓名”字段和“成绩”表中的“课程编号”、“成绩”字段作为数据源,SQL生成器会自动根据你的选择生成SQL
33、语句如下:SELECT 学生信息表. 学号, 学生信息表. 姓名, 成绩表. 成绩, 成绩表. 课程编号FROM 学生信息表 INNER JOIN 成绩表 ON 学生信息表. 学号 = 成绩表. 学号关闭SQL生成器,将弹出提示保存查询的信息框,单击是按钮,保存生成的SQL语句。47(3)使父命令和子命令相关联在“成绩细节区”子命令的属性对话框中,选择关联选项卡(如图10.29),确认父命令是“成绩分组区”;在关联定义框中,选择父字段和子字段都为“课程编号”,表示父、子命令通过“课程编号”字段相关联,然后单击添加按钮,将 父字段和子字段的选择添加到下边的列表框中。单击确定按钮,关闭属性对话框,
34、成绩单的命令层次关系就定义完了。结果在图10.30所示的数据环境窗口中,显示出定义好的每门课程的学生成绩的命令。48(4)用MSHFlexGrid控件显示命令层次结构MSHFlexGrid控件属于ActiveX控件。如果是直接新建的数据工程,则VB会自动将MSHFlexGrid控件添加到标准工具箱中;若没有,则需要另外在工程部件里,选择“Microsoft Hierarchical FlexGrid Control 6.0”,将该控件添加到工具箱中。在窗体上添加一个MSHFlexGrid控件,使用默认名称为MSHFlexGrid1,并调整到合适大小;设置该控件的属性如下,以绑定数据源:Data
35、Source :DataEnvironment1DataMember:成绩分组区(即:父命令的名称)49(5)用DataReport显示层次命令结构的打印报表在工程资源管理器窗口中,双击DataReport1,打开报表设计器窗口,在窗口中右击鼠标,在显示的快捷菜单中选择插入分组标头/注脚,使DataReport1窗口中显示分组区。在属性窗口中设置DataReport1的属性,绑定数据源:DataSource : DataEnvironment1DataMember: 成绩分组区(即:父命令的名称)50在DataReport1窗口的任意位置单击鼠标右键,在快捷菜单中选择检索结构。打开DataEn
36、vironment1窗口,将父命令“成绩分组区”中的“课程名称”字段拖放到DataReport1的分组标头区域中(因为按“课程名称”分组显示)。将子命令对象“成绩细节区”整个拖放到DataReport1的细节区域内,删除“课程编号”字段,将其余字段的标签放到分组标头区中,将各字段的文本框控件保留在细节区中,调整布局如图10.32。图10.32 报表布局设计5110.3.2 用分组层次结构的命令对象建立分组报表分组层次结构命令适合于单表查询的情况。例如按“专业”字段,分组显示学生记录,可以使查找学生信息更为清晰。【例10.10】 建立按“专业”字段分组显示的学生记录的数据报表。(1)建立分组命令
37、对象,操作如下:打开上例工程,在“DataEnvironment1”的连接对象ChengJiGL中,添加新命令,右击该命令,选择“属性”菜单,打开“属性”对话框;在通用选项卡中,将命令名称设为“学生信息”,其数据源设为SQL语句如下: select * from 学生信息表52单击分组选项卡(如图10.33所示),选中分组命令对象复选框,分组命令名称自动生成为:“学生信息_分组”,也可以修改该名称。在命令中的字段列表中,选择用来分组的字段:“专业”,并单击按钮,“专业”字段移到用于分组的字段列表框中。然后单击确定按钮,关闭属性对话框。这时在数据环境设计器窗口中创建了一个名为“学生信息_分组”的
38、命令对象,并使其成为原命令“学生信息”的父命令。该分组命令的层次结构如图10.34所示。 图10.33 设置用于分组的字段53(2)用MSHFlexGrid控件显示分组命令层次结构添加一个窗体Form1,标题属性Caption设为:学生信息;在窗体上添加控件MSHFlexGrid1,调整到合适大小;设置该控件的属性如下,以绑定数据源: DataSource : DataEnvironment1 DataMember: 学生信息_分组54(3)用DataReport显示分组命令结构打印报表在属性窗口中设置DataReport2的属性,绑定数据源:DataSource : DataEnvironm
39、ent1DataMember: 学生信息_分组在DataReport2窗口的任意位置单击鼠标右键,在快捷菜单中选择检索结构。打开DataEnvironment1窗口,将“摘要字段在学生信息_分组”中的“专业”字段拖放到DataReport1的分组标头区域中。将“细节字段在学生信息”整个拖放到DataReport2的细节区域内,并删除细节区域内的“专业”字段,将其余字段的标签放到分组标头区中,将各字段的文本框控件保留在细节区中,调整布局。5510.4 报表控件及其应用在VB的工具箱的“数据报表”选项卡中,为DataReport提供了6种专用控件:RptLabel: 标签控件,在报表中显示静态文本
40、RptLine: 画线控件,显示直线RptTextBox: 文本框,显示字段的数据。RptImage: 显示图片。RptShape:显示矩形、圆形等图形RptFunction:显示计算字段。5610.4.1 在报表中加入网格线在数据报表工具箱中,单击RptLine后,可在细节区用鼠标手工画线条;或单击RptShape,在细节区画矩形框,即可显示网格。在细节区中每显示一条记录,则文本框周围的线条将被显示一次。可以在属性窗口中,设置RptShape和RptLine控件的属性,如:线条的样式、颜色等。例如在例10-8的DataReport2中,用RptShape控件画矩形,将页标头区中各字段的标签控
41、件框起来;在细节区中的各文本框控件的下边用RptLine控件画一条横线,且在两端各画一条竖线(见图10-31)。图10-32 为加表格线报表的运行结果57图10-32 加表格线报表的运行结果图10-31 在报表中画线和矩形5810.4.2 显示文本和图片 用RptLabel控件可在报表中添加标题,页眉/注脚等文本例:在工具箱中单击标签控件RptLabel,在报表标头区添加如标签控件,在Caption属性中输入报表的标题文字。用图像控件RptImage ,可以在报表中显示图片。例如对于一个单位或一个公司而言,考虑到公司的形象,往往在报表的头部显示公司的徽标等图形。只要在报表中添加RptImage
42、控件,设置其Picture属性为所需图片文件即可。5910.4.3 统计与计算1用RptFunction控件实现统计与计算在实际工作中,常常在分组报表中,对该组数据进行汇总、统计,并以一定的格式显示出来。在数据报表中用RptFunction控件,调用一些内置函数,可以实现对某字段数据进行求和、求平均值、求最大值、求最小值等计算。RptFunction控件的FunctionType属性:用于指定进行何种计算,其取值含义如表10-1所示。 注意:RptFunction控件只能放在DataReport的分组注脚和报表注脚区域中。60表10-1 FunctionType属性取值含义取 值含 义0-rp
43、tFuncSum对一个字段求和1-rptFuncAvg对一个字段求平均值2-rptFuncMin对一个字段求最小值3-rptFuncMax对一个字段求最大值4-rptFuncRcnt求记录的行数5-rptFuncVcnt求记录不为NULL 的行数61例10-12 在学生成绩单报表中显示最高分。 在例10-11的DataReport2的报表注脚区添加一个RptFunction控件,设置属性如下:名称:Funtion1DataMember: ChengJiDataField: 成绩FunctionType: 3 - rptFuncMax Font: 五号、粗体在RptFunction控件左边添加一
44、个标签RptLabel控件,用来显示”最高分”. 设置属性如下: Caption:最高分 Font: 五号、粗体DataReport2的设计结果如图10-33所示,运行结果如图10-34所示。62图10-33 数据报表的设计结果图10-34 数据报表的运行结果63例10-13 在学生成绩报表的分组注脚区中,显示该门课的成绩的平均分。设计过程如下:在上例10-10的DataReport1的分组注脚区添加RptFunction控件,设置属性如下:名称:Funtion1DataMember: 成绩细节区DataField: 成绩FunctionType: 1rptFuncAveFont: 五号、粗体
45、64在分组注脚区添加RptLabel控件,设置属性如下:Caption: 平均分: Font: 五号、粗体用rptLine控件,在分组区画两条横线,在细节区画一条横线。DataReport1的布局设计结果如图10-35所示,运行结果如图10-36所示。65图10-36 数据报表的运行结果图10-35 数据报表的布局设计6610.4.4 显示页码和日期使用RptLabel控件,若将Caption属性设为下表所示的值,则将显示所代表的内容。%p 当前页号%P 报表的总页数%d 当前日期(短日期格式)%D 当前日期(长日期格式)%t 当前时间(短时间格式)%T 当前时间(长时间格式)%i 报表标题例
46、:在页注脚区添加RptLabel控件,设Caption属性值: %p。则运行程序,将显示当前页码。67在报表设计器中,提供了快捷菜单,可向报表插入页码、日期、时间等内容。可在报表中的相应区,单击鼠标右键,选择插入控件命令,再在子菜单中选择要插入的内容。插入报表标题后,要设置Caption属性,为要显示的标题字符串。68例10-15 在页注脚区中,显示当前日期,当前页码。打开上例的中的DataReport2窗口;在页注脚区中,右击鼠标,在弹出的快捷菜单中选择插入控件当前页码,则添加了一个Caption为%p的标签;在页注脚区中,再右击鼠标,在弹出的快捷菜单中选择插入控件当前日期(长格式),则添加了一个Caption为%D的标签;在%p的左右分别添加标签,Caption分别为:“第”和“页”;调整合适布局,结果如图10-41所示。运行DataReport2结果如图10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 组织沟通与团队凝聚力考核试卷
- 鼻炎新人日常护理常规
- 苏教版五年级方程课件
- 护理研究生文献阅读汇报
- 2025汽车销售合同范本范本
- 2025节能灯具购销合同
- 2025电子产品供应合同模板
- 2025商场店面租赁合同范本
- 2025写字楼租赁代理合同范本
- 2025版网签精装修住宅购房合同示范文本
- 选择性必修3 《逻辑与思维》(思维导图+核心考点+易混易错)
- 公募基金与私募基金的试题及答案
- 线组长培训课件
- 2025-2030中国水利建设行业经营形势分析及未来前景展望研究报告
- 助残委托服务协议
- 2025年全职高手测试题及答案
- 【五年级下册语文】 第六单元习作《神奇的探险之旅》
- 2025届新高考生物冲刺易错知识点梳理
- 2025森林抚育技术规程
- 颈椎病课件完整版
- 李四光《看看我们的地球》原文阅读
评论
0/150
提交评论