水晶报表是一个报表设计开发的强大工具,功能强大,设计灵活,在水晶报表光盘中只提供了一个完全动态生成报表的例子,使用繁琐。现介绍其在VC++6.0中的简单使用方法。编译环境:VC++6.0 sp5 、Windows 2000 Server sp3 (en)。一、导入水晶报表使用的动态联接库:根据实际修改文件路径。
1.
#import "C:\Documents and Settings\Administrator\桌面\cr\craxdrt9.dll" no_namespace
二、定义接口指针变量
1.
//水晶报表变量
2.
IApplicationPtr m_Application;
3.
IReportPtr m_Report;
4.
//水晶报表控件变量,在对话框中加入该控件
5.
CCrystalReportViewer9 m_CRViewer1;
三、具体实现步骤
01.
//实例化m_Application
02.
m_Application.CreateInstance (__uuidof(Application));
03.
//获取m_Report变量
04.
//staff.rpt为通过向导建立的报表文件,数据库采用SQL Server 7.0
05.
m_Report =m_Application->OpenReport (
"C:\\Documents and Settings\\Administrator\\桌面\\cr\\debug\\staff.rpt"
);
06.
//设置报表标题
07.
m_Report->put_ReportTitle (_bstr_t(
"Title"
));
08.
//设置数据库连接变量
09.
//数据库服务器(local),数据库名staff,用户名sa,密码sa
10.
m_Report->Database ->Tables ->Item [1]->SetLogOnInfo(
"(local)"
,
"staff"
,
"sa"
,
"sa"
);
11.
//设置检索SQL命令
12.
m_Report->put_SQLQueryString ((_bstr_t)
"select * from person where id<'4' order by id"
);
13.
//不显示重复字段
14.
m_Report->PutEnableSelectDistinctRecords (TRUE);
15.
//设置检索条件,采用水晶报表语法,功能同设置检索SQL命令
16.
m_Report->PutRecordSelectionFormula ((_bstr_t)
"{person.id}='1'"
);
17.
//设置报表作者
18.
m_Report->PutReportAuthor (
"xiaojin"
);
19.
//将m_Report与报表控件连接
20.
m_CRViewer1.SetReportSource(m_Report);
21.
//显示报表工具条
22.
m_CRViewer1.SetDisplayToolbar (TRUE);
23.
//不显示报表左边的分组树
24.
m_CRViewer1.SetDisplayGroupTree (FALSE);
25.
//不显示控件边框
26.
m_CRViewer1.SetDisplayBorder (FALSE);
27.
//刷新数据
28.
m_CRViewer1.Refresh ();
29.
//显示报表内容
30.
m_CRViewer1.ViewReport();
这样,漂亮的水晶报表就显示出来了。程序异常处理部分省略,请自行加入。