收藏 分享(赏)

Visual_Basic报表设计PPT课件.ppt

上传人:oil007 文档编号:3835056 上传时间:2018-11-20 格式:PPT 页数:53 大小:863.50KB
下载 相关 举报
Visual_Basic报表设计PPT课件.ppt_第1页
第1页 / 共53页
Visual_Basic报表设计PPT课件.ppt_第2页
第2页 / 共53页
Visual_Basic报表设计PPT课件.ppt_第3页
第3页 / 共53页
Visual_Basic报表设计PPT课件.ppt_第4页
第4页 / 共53页
Visual_Basic报表设计PPT课件.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、第7章 Visual Basic,本章学习要点了解数据报表设计器的作用、特性和结构掌握报表控件的应用方法掌握报表设计的方法掌握分组报表的设计方法掌握动态报表的设计方法,数据报表设计器特性,对字段的拖放功能Toolbox控件打印预览打印报表文件导出导出模板异步操作,添加数据报表设计器到工程,访问数据报表设计器前,必须先在 Visual Basic 中引用它,单击“工程部件”菜单项,弹出“部件”对话框,选择“设计器”选项卡(如图所示)中选中“Data Report”对象,然后单击“应用”按钮,此时,数据报表设计器添加到工程中,数据报表设计器的结构,报表设计器的基本结构 : DataReport 对

2、象 、Section 对象 和 DataReport 控件,Section 对象的结构,报表标头 页标头 分组标头/注脚 细节 页注脚 报表注脚,特殊控件的含义,报表控件,数据报表控件工具箱中的控件有:Label 控件(RptLabel)、 TextBox 控件(RptTextBox)、 Image 控件(RptImage)、 Line 控件(RptLine)、 Shape 控件(RptShape)、 Function 控件(RptFunction)。,要向数据报表添一个 Function 控件,按如下步骤执行: (1)在“数据报表工具箱”里单击 RptFunction 控件; (2)在“分组

3、注脚”的空间绘制 RptFunction 控件; (3)设置 RptFunction 控件的常用属性,各属性含义如表:,(4)控件的“FunctionType”属性决定将对“数据字段”中的数据进行什么操作。缺省情况下,这一属性设置为0-RptFuncSum,以合计数据的值。其它函数包括:Average、Minimum、Maximum、Row Count、STDDev (标准偏差)和 Value Count。Function控件包含的函数如表:,FunctionType属性取值,报表“安全检查情况一览表”(DataReport4)的数据源是Command6对象,展开后如图所示。在图中,Comma

4、nd6对象中的字段都是以汉字的形式显示出来,并不是数据表(jcxx)的字段名。,这是因为为了方便下一步的报表设计将它们的属性进行了修改,方法是通过依次选中各字段,单击鼠标右键,出现“属性”菜单项,单击“属性”菜单项,弹出的“字段 属性”对话框内,在“通用”选项卡内修改了属性“字段标题”,如图。依次修改各个字段标题,为设计报表做准备。,要创建一个新的数据报表,按如下步骤执行:(1)单击“工程添加 Data Report”菜单项,Visual Basic 将把它添加到当前工程中。如果数据报表设计器不在“工程”菜单上,单击“部件”菜单项,在“设计器”选项卡上单击“Data Report”把设计器添加

5、到菜单上。(2)设置 DataReport 对象的属性,如图所示,设置属性后的报表对象DataReport4如图。,(3)在数据报表设计器的空白处单击鼠标右键,从弹出的菜单项中选择“检索结构”命令,弹出对话框如图所示。(4)单击“是”按钮,更新了报表布局,如图所示。,创建了报表对象DataReport4后,要进行其中控件的设计,设计步骤如下:(1)将数据环境对象DataEnvironment1的Command6对象中的各个字段依次拖曳到细节(Command6_Detail)中,如图。每拖曳一个字段到报表中都同时产生一个Label控件和一个TextBox控件。,(2)上图的报表不能以表格的形式显

6、示出来,需要进行修改。将所有的Label控件都拖曳到页标头(PageHeader)中,然后将Label控件和TextBox控件的位置按要求排列,如图所示。,(3)利用rptLine控件为表格添加线条,使报表以表格的形式显示。在各个Label控件和TextBox控件之间画上线条。 (4)在DataReport4的报表标头(ReportHeader)放置一个Label控件,将其Caption属性设为“安全检查情况一览表”;然后单击Font属性的“”,在弹出的“字体”对话框里可以对字体、字形、大小和效果等进行设置;设置Alignment为2rptJustifyCenter,使标题居中。 (5)在Da

7、taReport4的报表标头(ReportHeader)还可以放置打印日期和时间,方法是:拖曳一个Label控件到报表标头的右下侧,将其Caption属性设为“打印时间:D”;然后再拖曳一个Label控件到前一个Label控件的旁边,将其Caption属性设为“T”,然后调整两个Label控件的位置和字体属性。,(6)在页注脚(PageHeader)中可以放置页码,方法是:依次拖曳两个Label控件到页注脚的右下侧,分别设置它们的Caption属性为“共P页”和“第p页”,然后再调整两个Label控件的位置和字体属性。按上述步骤设置完成的DataReport4报表如图。,创建Command对象

8、,分组报表DataReport10连接的数据源是Command4对象,创建的方法如下: (1)在工程中打开数据环境对象DataEnvironment1,在Connection1对象里添加命令对象Command4; (2)设置Command4对象的通用属性,如图所示。,(3)设置Command4对象的分组字段“jshzhch”,其它字段为细节字段,如图所示。,设置完属性的Command4对象在数据环境对象中的形式如图所示。,创建了Command4对象,接着创建数据报表对象,步骤如下: (1)单击“工程添加 Data Report”菜单项,Visual Basic 将把它添加到当前工程中。 (2)

9、设置 DataReport 对象的属性,如表所示:,设置属性后的报表对象DataReport10如图。,(3)在数据报表设计器的空白处单击鼠标右键,从弹出的菜单项中选择“检索结构”命令,弹出对话框如图所示。,(4)单击“是”按钮,更新了报表布局,如图。,创建了报表对象DataReport10后,要进行其中控件的设计,设计步骤如下:(1)将数据环境对象DataEnvironment1中 “摘要字段在Command4_分组”下的“jshzhch”字段拖曳到数据报表对象DataReport10中的“分组标头”里,同时产生一个Label控件和一个TextBox控件。将Label控件拖曳到数据报表对象D

10、ataReport10中的“页标头”里,将Label控件的Caption设置为“技术职称”,根据需要设置Font属性,如图,(2)将“细节字段在Command4”中需在报表DataReport10里显示的字段依次拖曳到数据报表对象DataReport10中的“细节”里。每个字段同样生成一个Label控件和一个TextBox控件,将Label控件拖曳到数据报表对象DataReport10中的“分组标头”里,设置它们的Caption属性。然后将Label控件和TextBox控件的位置按要求排列,如图。,(3)在“数据报表工具箱”里拖曳一个rptShape控件到报表DataReport10的“细节”

11、中,调整位置包围所有的TextBox控件。利用rptLine控在每个TextBox控件之间画上线。(4)在DataReport10的“报表标头”(ReportHeader)放置一个Label控件,将其Caption属性设为“人员信息一览表”;然后单击Font属性的“”,在弹出的“字体”对话框里可以对字体、字形、大小和效果等进行设置;设置Alignment为2rptJustifyCenter,使标题居中,如图,(5)在DataReport10的“报表标头”(ReportHeader)还可以放置打印日期和时间,图见下页。设置方法是:拖曳一个Label控件到报表标头的右下侧,将其Caption属性设

12、为“打印时间:”;然后单击报表标头的空白处,弹出菜单项,如图 所示,单击“插入控件当前日期(D)(短格式)”,此时在报表标头里自动生成一个Label控件,其Caption属性默认为“%d”,用来显示当前系统日期;再单击“插入控件当前时间(M)(短格式)”,此时在报表标头里又生成一个Label控件,其Caption属性默认为“%t”,用来显示当前系统时间;调整三个Label控件的位置和Font属性。,(6)在“分组注脚”中可以显示每组的总记录数,方法是:选择“数据报表工具箱”,单击rptFunction控件,将其放置在报表分组注脚中的右侧,将其FunctionType的属性设置为:4rptFun

13、cRCnt。然后再添加两个rptLabel控件,分别设置它们的Caption属性为:“该组共计”和“条记录”,如图所示。,(7)单击页注脚的空白处,在弹出的菜单项里单击“插入控件当前页码”命令,此时在页注脚里自动生成一个Label控件,其Caption属性默认为“%p”,用来显示当前页码。(8)在“报表注脚”中可以显示所有数据的总记录数,方法是:选择“数据报表工具箱”,单击rptFunction控件,将其放置在报表报表注脚中的右侧,将其FunctionType的属性设置为:4rptFuncRCnt。然后再添加两个rptLabel控件,分别设置它们的Caption属性为:“总计”和“条记录”。根

14、据需要还可添加“总页码”控件,在弹出的菜单项里单击“插入控件总页码”命令,此时在报表注脚里自动生成一个Label控件,其Caption属性默认为“%P”,用来显示报表的总页码。如图,按上述步骤设置完成的DataReport10报表如图所示。,为了使代码简捷,将声明Connection对象和RecordSet对象的语句都放在系统的模块对象“Module2”中,执行方法如下。1添加ADO对象 如果系统中没有ADO对象,就单击“工程引用”菜单项,在弹出的对话框中选中ADO对象库“Microsoft ActiveX Data Objects 2.0 Library”,就可以在程序中直接声明或创建ADO

15、对象,如图。,2创建模块对象 单击“工程添加模块”菜单项,在工程中创建了模块对象,定义其名称为“Module2”。 3、声明Connection和RecordSet对象 双击“Module2”对象,弹出代码窗口,在代码中声明两个共有变量:Connection对象“db”和RecordSet对象“rs”,如图。,创建Connection对象,由于在登录窗口中就开始连接数据库,所以在登录窗口frmLogin1的Load事件里创建Connection对象,如图所示,创建RecordSet对象,在“企业资质管理系统”中的通用查询窗口中,每次查询完都允许用户单击工具栏的“打印预览”或“打印”按钮打印当前

16、的数据。例如查询“技术职称”为“工程师”的那些人员后,只打印查询结果中的数据,如图。,此时报表DataRepot10的数据源发生了变化,尽管报表格式不变,但打印的数据应该发生变化,所以DataRepot10对应的数据源“rs”要根据查询的结果改变。在查询窗体的“查询”按钮里编写Click事件,根据查询的结果改变“rs”对应的记录集,代码如下:Private Sub cmdApply_Click() Dim ls_sql1 As String Dim ls_sql2 As String On Error GoTo err2 Set frs = New Recordset,f rs.Open “s

17、elect * from cxb“, db, adOpenStatic, adLockOptimistic If frs.RecordCount = 0 Then Exit Sub End If frs.MoveFirst For i = 1 To frs.RecordCountls_sql1 = ls_sql1 & “ “ & frs.Fields(“www“)frs.MoveNext Next frs.Close Set frs = Nothing,If Right(ls_sql1, 2) = “nd“ Thenls_sql1 = Left(ls_sql1, Len(ls_sql1) -

18、3) Elsels_sql1 = Left(ls_sql1, Len(ls_sql1) - 2) End If Select Case selclickCase 1 ls_sql2 = “select * from qyjbxx where “ Case 2 ls_sql2 = “select * from ryxx where “ Case 3,ls_sql2 = “select * from sbxx where “ Case 4 ls_sql2 = “select * from sg where “ Case 5 ls_sql2 = “select * from jcxx where “

19、 End Select gsql = “where“ & “ “ & ls_sql1 ls_sql2 = ls_sql2 & “ “ & ls_sql1 gsql1 = “ “ & ls_sql1,Set rs = New Recordset 根据查询结果,打开记录集 rs.Open ls_sql2, db, adOpenKeyset, adLockOptimistic, adCmdText rs.Requery 将查询结果显示在DataGrid1中,此时rs对应查询结果记录集 Set Form11.DataGrid1.DataSource = rs gridc Form11.StBar1.P

20、anels.Item(2) = “共查询出“ & rs.RecordCount & “条记录“ Exit Sub err2: MsgBox “错误,请输入合法数值!“ & Err.Description, , “查询错误“ End Sub,报表控件的数据绑定,直接把数据报表(DataReport)绑定到一个记录集对象中,应该把数据报表的DataSource属性设置为记录集对象,然后绑定报表中的TextBox控件的对应字段名称。操作步骤如下:1创建报表的数据源我们在曾设计的报表对象DataReport10中定义它的数据源。方法是双击报表的空白处,弹出代码编写对话框,选择DataReport10的

21、Initialize事件,设置它的DataSource属性为“rs”,如图。,2设置报表的文本框控件属性 打开报表设计器,在DataReport10的细节中有多个文本框控件,依次选中每个文本框控件,在DataField属性中,单击“ ”按钮,会自动列出当前记录集的所有字段名,选择对应的字段名称进行设置。至此运行时把ADO记录集对象“rs”中的记录绑定到数据报表就全部完成了,报表对象可以随查询结果自动更新数据。,报表的打印预览,通常经过初步设计的报表不能完全满足应用程序的需要,需要在经过打印预览之后,反复调整报表对象中各个控件的设置,最终达到用户的要求。VisualBasic中报表打印预览的方式

22、有两种:使用DataReport对象的Show方法和设置DataReport对象为启动对象。,1使用DataReport对象的Show方法实现打印预览Show方法是用来打印预览当前的DataReport对象,其语法是:DataReport.Show 在前面曾创建了数据报表对象DataReport10,怎么实现它的打印预览功能呢?打开主窗体Form11,单击菜单“分组报表打印”的子菜单项“按人员技术职称分组统计”,弹出代码窗口,对象名:ryzc,编辑它的Click事件,如图所示。,完成了上述代码编写后,运行窗体,单击菜单“分组报表打印”的子菜单项“按人员技术职称分组统计”就可以预览报表对象Dat

23、aReport10,如图所示。,2设置DataReport对象为启动对象如果想在程序执行时直接显示DataReport对象,而不经过菜单或窗体的调用,可以将数据报表设置为工程的启动对象,方法是:单击“工程工程1属性”菜单项,弹出“工程1工程属性”对话框,选择“通用”选项卡,将其中的启动对象设置为要预览的报表对象名称,如下页图所示。设置完报表DataReport10为启动对象,直接运行工程(按下“F5”键),报表就以打印预览的形式出现。,报表的打印,经过预览后的报表符合用户要求后,就可以打印输出了。打印一个数据报表可以使用下面两种方法之一。 1使用打印按钮 用户使用“打印预览”后,出现预览窗口,

24、可以单击窗口工具栏的“”打印按钮,直接将当前报表打印输出。 2可以通过使用 PrintReport 方法编程打印 编程打印一个报表时,有两种选择:通过显示“打印”对话框打印,或不显示对话框打印。,(1)要显示“打印”对话框,按照下列步骤执行: 将一个 CommandButton 添加到窗体,在按钮的 Click 事件中,编写下面的代码: DataReport1.PrintReport True“打印”对话框允许用户选择一个打印机、打印到文件、选择要打印的页面范围并指定 要打印的份数。这种情况一定要安装打印机才能正确运行。,(2)不显示对话框打印 在有些情况下,可能希望不需用户干预打印报表。Pr

25、intReport 方法也提供这样的选择:选择要打印的页面范围,可以是全部,也可以是一个指定的范围。 要不显示对话框地打印,按照下列步骤执行: 将一个 CommandButton 添加到窗体中,在按钮的 Click 事件中,编写下面的代码: DataReport1.PrintReport False 或者,要指定打印的页面范围,可以使用下面的代码:DataReport1.PrintReport False, rptRangeFromTo, 1, 2,本章习题,1简述数据报表的作用,为什么要设计报表? 2简述常用的报表控件有哪些,如何应用? 3简述设计分组报表的方法。 4简述设计动态报表的方法。 5如何实现报表的打印及打印预览功能?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报