当前位置:文档之家› 水晶报表在VC 6.0中的使用

水晶报表在VC 6.0中的使用

水晶报表在VC 6.0中的使用
水晶报表在VC 6.0中的使用

水晶报表在VC 6.0中的使用

1.创建VC工程添加报表控件

在VC集成环境中用AppWizard新建一个MFC单文档工程,其余选项都为默认。菜单中选择Project->Add To Project->Components and Controls...弹出组件、控件选择对话框,进入Registered ActiveX Controls,选中Crystal Report Viewer Control 9.lnk,单击"Insert"按钮,确认后进入类配置对话框,按默认即可。关闭控件选择对话框完成控件的添加。

2.导入水晶报表使用的动态链接库

#import "C:\Program Files\Crystal Decisions\Report Designer Component\craxdrt9.dll"

no_namespace

3.按钮Button1的事件

//水晶报表变量

IApplicationPtr m_Application;

IReportPtr m_Report;

//水晶报表控件变量,在对话框中加入该控件

CCrystalReportViewer9 m_CRViewer1;

//实例化m_Application

m_Application.CreateInstance (__uuidof(Application));

//获取m_Report变量

//staff.rpt为通过向导建立的报表文件,数据库采用SQL Server 2000

m_Report =m_Application->OpenReport ("C:\\Report1.rpt");

//设置数据库连接变量

//数据库服务器(local),数据库名ADOconn,用户名sa,密码annzai

m_Report->Database ->Tables ->Item

[1]->SetLogOnInfo("(local)","ADOconn","sa","annzai");

//设置检索SQL命令

m_Report->put_SQLQueryString ((_bstr_t)"select * from info");

//不显示重复字段

m_Report->PutEnableSelectDistinctRecords (TRUE);

//设置检索条件,采用水晶报表语法,功能同设置检索SQL命令

//m_Report->PutRecordSelectionFormula((_bstr_t)"{https://www.doczj.com/doc/ea13226531.html,erID}='2001'");

//或者m_Report->PutRecordSelectionFormula=(_bstr_t)"{https://www.doczj.com/doc/ea13226531.html,erID}='2001'";

//m_Report->PutRecordSelectionFormula="";表示显示所有字段

//设置报表标题,在设计报表时需要插入报表标题特殊字段

m_Report->ReportTitle="学生成绩报表范例";

//设置报表作者

m_Report->PutReportAuthor("lcl");

//将m_Report与报表控件连接

m_CRViewer1.SetReportSource(m_Report);

//显示报表工具条

m_CRViewer1.SetDisplayToolbar (TRUE);

//不显示报表左边的分组树

m_CRViewer1.SetDisplayGroupTree (FALSE);

//不显示控件边框

m_CRViewer1.SetDisplayBorder (FALSE);

//刷新数据

m_CRViewer1.Refresh ();

//显示报表内容

m_CRViewer1.ViewReport();

//设置预览报表的缩放比率为75%

m_CRViewer1.Zoom(75);

/*******************分页显示代码*********************

//GH1是分组名,以此分组名来进行分页显示

m_Report->Areas->GetItem("GH1")->NewPageBefore=true;

m_CrystalReport.Refresh();

****************************************************/

/***************************************************

// 按学号分组

IDatabaseFieldDefinitionPtr

NumFieldPtr=m_Report->Database->Tables->Item[1]->Fields->Item[3];

m_Report->Areas->GetItem("GH1")->GroupConditionField=NumFieldPtr;

m_CrystalReport.Refresh();

****************************************************/

/**********************排序代码*********************

// 按成绩排序

IFieldDefinitionPtr ScoreFieldPtr=m_Report->Database->Tables->Item[1]->Fields->Item[5]; if(m_Report->RecordSortFields->Count==0)

{

m_Report->RecordSortFields->Add(ScoreFieldPtr,crAscendingOrder);

}

else

{

m_Report->RecordSortFields->Item[1]->Field=ScoreFieldPtr;

}

m_CrystalReport.Refresh();

****************************************************/

/****************打印代码***************************

m_CrystalReport.SetDestination(1); ///设置输出对象是打印机

m_CrystalReport.PrintReport(); ///打印

****************************************************/

相关主题
文本预览
相关文档 最新文档