基于VB.Net水晶数据报表设计

时间:2022-08-14 06:51:02

基于VB.Net水晶数据报表设计

摘要:在信息管理系统开发中,经常要使用报表分析和统计数据,水晶报表是一款优秀的报表开发工具,简单、易用和功能强大,使得在开发信息管理系统时报表的开发变得很方便,该文通过一个教务管理系统介绍了在 平台下用水晶报表开发报表的方法。

关键词:;水晶报表

中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)36-10250-02

开发应用程序时,经常需要生成报表,,如何开发出既满足用户需求,又能减少开发人员工作量的报表是开发人员普遍面临的问题。水晶报表是由Crystal Decisions 公司开发的商务智能软件,是一款优秀的专业报表开发和制作工具,Crystal Reports for Visual 是以CrystalReports9.0 为蓝本,专门为.NET平台定制的,提供了丰富的编程模型,充分利用.NET Framwork 和CRL,大大降低了开发大型,复杂的企业级报表过程的复杂度,同时它使用开放而灵活的结构,其标准类似XML,可通过Web 共享报表与信息,可提供深化图表、报表导航和文本搜索等功能。此外,导出的Excel文件格式非常完美,任何其它报表在这方面都不能与之比拟,而且并不需要安装Excel,它还为.NET 开发人员提供丰富的API,便于开发人员调用。

1 下的水晶报表设计

1.1 水晶报表数据传递模型

水晶报表数据传递模型如图1图示,其中,数据源可以是传统数据库也可以是XML文件,使用的对象DATAAdapter及Connection等来连接数据库,DataSet向下用来存储数据,同时可以直接操作XML文件,向上填充BindingSource,并用BindingSource来填充DataSource, CrystalReportViewer的功能是利用Datasource的填充的数据及指定给它的RDLC报表文件表显示报表(如图1)。

1.2 水晶报表的应用实例

本文以某高校一个教务管理系统为例介绍如何使用水晶报表。

1.2.1 创建报表模板

1) 新建基于Windows的工程WindowsApp lication1,在“解决方案管理器”中,右击项目名,在弹出的“项目”菜单中选择“添加”,打开“添加”菜单,在“添加”菜单里选择“新建顶”,打开“添加新项”对话框。

2) 在“添加新项”中选择“Crystal报表,单击“添加”,弹出 “Crystal Reports库” 对话框。在选项组“创建新Crystal Report文档”中,有3个选项:1. 使用报表向导:有对话框指导完成报表的创建,并将选择保存到报表设计器中;2. 作为空白报表:对报表不做任何设置;3. 来自于现有的报表:用目前设计好的报表作为模板,重新设计报表。

在选项组“选择专家”中包含三种不同的报表专家,可以指导完成特定类型报表的创建工作。有3个选项:1. 标准:指导如何选择数据源和连接数据库表。还可以帮助用户添加字段以及分组、统计、图表以及排序。2. 交叉表:报表中的数据作为交叉表对象显示,并指导自定义格式。3. 邮件标签:允许用户格式化报表,目的是打印在任意尺寸的邮件标签上。

3) 分别选择“使用报表向导”和“标准”选项,点击确定,“标准报表创建对话框,对话框“数据”为要创建的报表选择数据源,列表中包括如下的选项:1. 项目数据:显示当前项目的数据源列表和的数据源;2. 当前连接:显示当前连接到数据源的列表;3. 收藏夹:显示“收藏夹”列表中维护的数据源列表。4. 历史记录:显示最新5条使用过的数据源;5. 创建新连接:显示可以创建的所有数据源,取决于安装过程中选定的数据访问组件。

4) 在列表中选择“创建新连接”中选择“OLE DB(ADO)”文件夹,对话框“OLE DB(ADO)”

5) 选择“Microsoft OLE DB Provider for SQL Server”并进入下一步,将要连接的数据库信息填写到对话框中。服务器名字为“(local)”,用户名和密码分别为“sa”和“123456”,并选择要连接的数据库为JWGL。

6) 单击按钮“完成”返回到“标准报表创建向导”对话框,依次点开文件夹,找到连接的数据,并将表“stdent”添加到右边的选定列表中,将表“student”中的所有字段都选中,并添加要显示的字段列表中。下面还有两个配置的窗口,分别是分组和筛选的对话框,因为这里不需要设置,所以都直接跳到最后一步“报表样式”,可选的样式有10个,这里选择“标准”样式。创建好的报表将加载到主窗口中。

1.2.2 在工程中添加报表模板

1) 在窗体上放置一个CrystalReport Viewer 控件

2) 在程序中添加报表验证信息,在form1下自定义一个过程

Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo)

Dim myTableLogonInfos As TableLogOnInfos = CrystalReportViewer1.LogOnInfo

For Each myTableLogOnInfo As TableLogOnInfo In myTableLogonInfos

myTableLogOnInfo.ConnectionInfo = myConnectionInfo

Next

End Sub

1.2.3 在form控件的load 事件下加入下面的代码

Dim dir As String

dir = System.Environment.CurrentDirectory

Dim path = dir.Substring(0, dir.LastIndexOf("\") - 3)

'MessageBox.Show(path + "Hierarchical Grouping.rpt")

Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()

CrystalReportViewer1.ReportSource = path + "CrystalReport1.rpt"

myConnectionInfo.ServerName = "(local)"

myConnectionInfo.DatabaseName = "jwgl"

myConnectionInfo.IntegratedSecurity = False

myConnectionInfo.UserID = "sa"

myConnectionInfo.Password = "123456"

'CrystalReportViewer1.LogOnInfo = myConnectionInfo

SetDBLogonForReport(myConnectionInfo)

2 总结

水晶报表在与 紧密集成后,功能强大,性能稳定,操作便捷,利用自身提供的报表设计器和 提供的丰富特性,在开发报表时可以极大地提高开发效率,减少开发人员工作量。

参考文献:

[1] 许清荣.新一代Visual Basic 2005 程序设计[M].北京:清华大学出版社,2006.

[2] 石志国数据库编程[M].北京:清华大学出版社,2009.

上一篇:基于混沌序列密码的算法分析与实现 下一篇:高职《数据结构》教学改革重在应用的探索