VB水晶报表使用方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
集成水晶报表的方法
Crystal Reports是非微软的第三方工具,用于处理数据报表,帮助用户分析和解释重要信息。使用Crystal Reports可以方便地创建你所能想象的任何报表。Visual 中集成的Crystal Reports9(简化版本)赋予.NET平台创建交互式的、高质量展示内容的能力,您可以在Web平台和Windows平台上呈现报表,甚至将Crystal报表作为报表Web服务在Web服务器上发布。
介绍Visual 集成Crystal Reports的资料真是少的可怜,好东东当然不敢独享,所以写下本文,水平有限,还望各位大虾指教。说了这么多,是不是感觉到.NET的无所不能,如果你正在寻找企业报表开发的新大陆,那你可要打起精神,睁大眼睛继续读下去啦!
我们用一个简单的实例来说明在Visual 中怎样玩转Crystal Reports。(本程序代码已在Visual 简体中文版调试通过。)
实现功能:点击生成报表按钮可根据用户输入的客户ID号生成相应报表(输入0显示所有订单记录),并在CrystalReportViewer控件中预览。
须注意的重点:
1、怎样在运行时将Crystal报表与后台数据源连接,即安全数据连接。(运行时动态连接数据库可灵活的设置数据环境及避免Crystl Reports弹出数据库登陆对话框。)
2、怎样让Crystal报表与界面控件交互
首先在MS-SQL Server2000中建立一名为"MRP"的实例数据库,其中有"客户"和"订单"两张表。
客户表的结构:
列名数据类型长度允许空
ID Varchar18
姓名Varchar8
性别Varchar2
年龄Decimal5
电子邮件Varchar50允许
创建时间Datetime8
订单表的结构:
列名数据类型长度允许空
ID Varchar18
订单号Varchar8
数量Varchar2
金额Decimal5
创建时间Varchar50
客户表与订单表可通过ID字段建立一对多关系。(建库细节请参阅有关书籍)
然后,我们就可以在Crystal Report Designer中设计和修改报表(Crystal Report Designer已集成在Visual 开发环境内),启动方法如下:
1、在Visual 解决方案资源管理器中,右击您的项目以显示快捷菜单。
2、指向"添加",单击"添加新项"。
3、在"添加新项"对话框中,从"模板"区域选择"Crystal Report"单击"打开"。
4、单击"确定"按钮。
Crystal Report Designer类似于FoxPro的报表设计器。通过数据库专家工具可以建立与数据源的连接;通过插入专家工具可在各节中插入字段、公式、SQL 表达式、参数等;通过选择专家工具可以筛选出有用数据;还可以使用Crystl 语法和BASIC语法建立灵活的函数、公式等。
设计报表并在报表中通过选择专家工具加入一选择公式:{客户.ID}={?ID}(详细建表步骤非本文重点,因篇幅原因,请大家参阅相关资料)
现在一切都准备就绪,下面就可以干点正事了!
首先新建一个Visual Windows应用程序项目。
在解决方案资源管理器中引用CrystalDecisions.CrystalReports.Engine 和CrystalDecisions.Shared两个.NET组件。
再在表单的声明区中加入:
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
按上图所示,在表单中摆放好四个控件,然后在按钮控件的Click事件中编写如下代码:
Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button1.Click
Try
'ParameterField类提供属性,以便检索和设置参数字段的选项和值。
Dim ParamFields As New ParameterFields()
Dim ParamField As New ParameterField()
'定义Crystal Report离散值
Dim DiscreteVal As New ParameterDiscreteValue()
Dim LogOnInfo As New TableLogOnInfo()
'表示一个报表,并且包含定义、格式化、加载、导出和打印该报表的属性和方法。
Dim Report As New ReportDocument()
'加载你事先做好的Crystal Report报表文件
Report.Load("D:\Temp\Order.RPT")
'对报表中的每个表依次循环。
Dim i As Integer
For i=0To Report.Database.Tables.Count-1
'ConnectionInfo提供属性,以便检索和设置与数据库服务器或ODBC数据源连接的选
项。
'当前表的连接信息,请设置为与你机器相关的正确数值
LogOnInfo.ConnectionInfo.ServerName="localhost"
LogOnInfo.ConnectionInfo.DatabaseName="MRP"
erID="sa"
LogOnInfo.ConnectionInfo.Password="020617"
'应用连接信息