将水晶报表嵌入到自己的应用程序中
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何将水晶报表嵌入到自己的应用程序中
白锐鸽白延平
[摘要] 本文根据项目需要,以Microsoft Visual Studio 2005为开发平台,应用控件Crystal Activex Reports Viewer Control 10.0,详细介绍了如何在自己的应用程序中嵌入水晶报表,以动态地分析和显示数据。
[关键词] 水晶报表控件应用程序
How to Embed Crystal Reports Into Your Own Program
Bai Ruige Bai Yanping
Abstract: In accordance with the project requirements, taking Microsoft Visual Studio 2005 as our develop panel, and applying the control named Crystal ActiveX Reports Viewer Control 10.0,this article fully introduces how to embed Crystal Reports into your own program, and then you can analyze and display your own data dynamically.
Key words: Crystal Reports Control Program
将Crystal Reports(水晶报表)用于处理数据库,从而可以帮助用户分析和解释重要信息。使用 Crystal Reports 既可以方便地创建简单报表,同时也提供了创建复杂或专用的报表所需的整套工具。通过将 Crystal Reports 的报表处理功能嵌入到自己的数据库应用程序中,Windows应用程序和 Web 开发人员可以节省开发时间并满足用户的需求。Crystal Reports 支持大多数流行的开发语言,可以方便地在任何应用程序中添加报表。
本文主要结合项目“陕西省公路交通信息系统”开发过程中水晶报表的嵌入,探讨将水晶报表根据需要动态的嵌入到具体的应用程序中的方法,希望对以后的开发者有所启示,有不成熟之处希望和开发者一起探讨。
1报表模板设计
将报表嵌入到应用程序中,有两种实现方法:一是在程序运行时,用户根据实际需要设计报表的格式、内容等,这需要在报表模块中包含报表设计器;二是在程序发布前,程序员根据需要定制好报表模板,在程序运行时,用户只能对报
表进行浏览、打印等操作,无法对报表的格式进行修改。
由于项目需要,我们采用第二种方法,即在程序发布前定制报表模板,程序运行时,数据库动态生成数据,套用报表模板,自动生成所需报表。具体流程如下:
图1 报表模块操作流程图
因此,要将报表模板嵌入到应用程序中之前,需要做的工作有:
1)设计好报表模板,即制作好报表样式。
2)应用程序中,写好动态更新数据库表的代码。
3)将报表模板与具体数据库中表的具体字段连接,生成符合要求的*.rpt 文件。
2报表模块的实现
使用水晶报表之前,需要安装Crystal Reports软件。本系统使用Crystal Reports 10的水晶报表控件。Crystal Reports 10提供了Embeddable Crystal Reports Designer Control 10.0控件和Crystal Activex Reports Viewer Control 10.0控件。由于本系统采用程序发布前定制报表模板,所以只需要添加Crystal ActiveX Reports Viewer Control 10.0控件即可。
2.1 添加水晶报表控件
本系统的开发环境为Microsoft Visual Studio 2005中的Visual C++,具
体添加水晶报表控件的步骤如下:
1)新建一个MFC应用程序,具体命名根据项目需要。
2)添加报表控件开发所需文件,本系统由于只添加了Crystal Activex Reports Viewer Control 10.0控件,所以其对应需要添加的文件有:crvtrackcursorinfo.h、crvtrackcursorinfo.cpp、crystalreportviewer10.h、crystalreportviewer10.cpp。这4个文件可以在水晶报表的官方网站下载。3)在项目资源工具箱单击右键,在弹出的菜单中选择“选择项”子菜单,这时弹出如下图2-1的对话框。
图2 选择工具箱项
和在图2所示相同,在COM组件标签页“Crystal ActiveX Report Viewer Control 10.0”项前面的选择框中打钩,再单击“确定”按钮,将该控件添加到工具箱中。
2.2应用程序界面设计
将工具箱中的控件添加到应用程序中,具体步骤如下:
1)在项目资源中新添加一个对话框,举例修改其ID为IDD_CRYSTAL。同时将工具箱中的Crystal ActiveX Report Viewer Control 10.0添加到该
对话框,并修改其ID为ID_VIEWER.
2)为该对话框添加类CCrystalDlg,并为该控件添加变量:
CcrystalReportViewer10 m_ReportViewer;
2.3水晶报表控件的使用
水晶报表在VC++中的使用步骤如下:
(1)在项目的stdafx.h中添加水晶报表使用的动态链接库,根据实际情况修改文件路径。举例如下:#import “C:\ProgramFiles\Common Files\Crystal Decisions\2.5\bin\craxdrt.dll”no_namespace
(2)在CCrystalDlg类中添加水晶报表接口指针变量m_Application和m_Report,定义报表路径变量m_ReportPath,数据库表名变量m_TableName,数据库记录智能指针Rps。代码如下:
(3)添加CCrystalDlg类的重载函数OnInitDialog(),该函数用于初始化报表控件,代码如下: