用Visual C++轻松实现报表处理
2010-09-04 20:47:55 来源:WEB开发网前言
数据库在企业软件系统中应用广泛,而报表的显示与打印成为此类软件必备的功能。可惜VC++并没有集成报表处理工具,但其强大的功能再加上市面上功能完备的报表处理工具使这一工作变得容易,本文介绍了在VC++环境中利用Seagate公司的Crystal report(水晶报表)来实现报表的显示与打印,并提供示例代码。
一、准备工作
(1)安装Crystal Report软件Crystal Report 4.6是一个免费的报表工具,可以在VB5或WINDOWS NT 4.0 BackOffice等光盘上找到,Crystal report4.6中包含了报表设计工具与报表打印控件。程序的发行只需要安装打印控件相关部分即可。
(2)设计报表
我们生成一个名为sample.rpt的报表,这一过程可以参考 Crystal report自带的帮助文档,本文不作详细介绍。
二、创建VC工程添加报表控件
在VC集成环境中用AppWizard新建一个MFC单文档工程,其余选项都为默认。菜单中选择Project->Add To Project->Components and Controls……弹出组件、控件选择对话框,进入Registered ActiveX Controls,选中Crystal Report Control 4.6 ,单击Insert按钮,确认后进入类配置对话框,按默认即可。关闭控件选择对话框完成控件的添加。
三、实现报表的显示与打印
下面我们将在对话框中演示控件的静态创建过程,在主视图中演示控件的动态创建过程。
3.1在对话框中打印出报表
在资源编辑器中打开ID为IDD_ABOUTBOX的对话框模板,在Controls工具条中我们可以找到刚加入到工程中的Crystal Report Control 4.6控件按钮,把它插入到对话框合适的位置处。
右键单击对话框中的控件,选择属性,此时可以设置控件的许多属性。我们在Control选项页ReportFileName中输入报表文件名sample.rpt(可以加上完整路径),在Print Window选项页中设置控件的合适位置,回到对话框模板中按住Ctrl键,双击鼠标左键,弹出Add Member Variable对话框,我们将成员变量命名为m_CrystalReport,打开ClassWizard,为CAboutDlg对话框添加WM_INITDIALOG消息的处理函数:BOOL OnInitDialog(),并在函数中做如下处理
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
/////此行设置控件的父窗口,你也可以去掉该行看看运行效果/////////
m_CrystalReport.SetWindowParentHandle((long)(this->m_hWnd));
/////打印报表到窗口中/////
m_CrystalReport.PrintReport();
return TRUE;
}
至此,程序的第一部分编写完成,编译运行,打开About对话框看看效果吧!
哦!还不错!
假如您并没有显示出报表,有如下可能原因:
(1)控件没有放置在合适的位置或尺寸不对。
(2)报表文件本身存在诸如数据源不可用等错误。
控件窗口中的工具条提供了缩放、打印等功能,您也可以试试在打印机上打印出来的效果。
- ››轻松解决Windows虚拟内存不够问题
- ››轻松调整Windows 7任务栏预览窗大小
- ››轻松控制Win Vista系统托盘图标
- ››轻松送祝福!2010感恩节经典QQ个性签名
- ››实现基于OPhone 2.0的GTalk客户端
- ››实现可编辑下拉框的ComboBox asp.net控件方法
- ››实现AjaxPro的方法
- ››Visual Studio自定义调试窗体两个小技巧
- ››轻松自拍 摄像头自拍常见问题解答2则
- ››轻松配置 - 微软发布PHP Manager for IIS 7
- ››实现asp中htmlencode功能的jsp函数
- ››Visual Studio 2005 Team Edition for Database P...
更多精彩
赞助商链接