水晶报表在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)"{info.userID}='2001'");

       //或者m_Report->PutRecordSelectionFormula=(_bstr_t)"{info.userID}='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(); ///打印

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值