水晶报表在VC++6.0中的简单使用方法

水晶报表是一个报表设计开发的强大工具,功能强大,设计灵活,在水晶报表光盘中只提供了一个完全动态生成报表的例子,使用繁琐。现介绍其在VC++6.0中的简单使用方法。编译环境:VC++6.0 sp5 、Windows 2000 Server sp3 (en)。一、导入水晶报表使用的动态联接库:根据实际修改文件路径。

#import "C:\Documents and Settings\Administrator\桌面\cr\craxdrt9.dll" no_namespace

二、定义接口指针变量

//水晶报表变量
IApplicationPtr m_Application;
   IReportPtr m_Report;
//水晶报表控件变量,在对话框中加入该控件
   CCrystalReportViewer9  m_CRViewer1;

三、具体实现步骤

 //实例化m_Application
   m_Application.CreateInstance (__uuidof(Application));
//获取m_Report变量
//staff.rpt为通过向导建立的报表文件,数据库采用SQL Server 7.0
  m_Report =m_Application->OpenReport ("C:\\Documents and Settings\\Administrator\\桌面\\cr\\debug\\staff.rpt");
  //设置报表标题
  m_Report->put_ReportTitle (_bstr_t("Title"));
  //设置数据库连接变量
//数据库服务器(local),数据库名staff,用户名sa,密码sa
  m_Report->Database ->Tables ->Item [1]->SetLogOnInfo("(local)","staff","sa","sa");
//设置检索SQL命令
m_Report->put_SQLQueryString ((_bstr_t)"select * from person where id<'4' order by id");
//不显示重复字段
  m_Report->PutEnableSelectDistinctRecords (TRUE);
  //设置检索条件,采用水晶报表语法,功能同设置检索SQL命令
m_Report->PutRecordSelectionFormula ((_bstr_t)"{person.id}='1'");
//设置报表作者
  m_Report->PutReportAuthor ("xiaojin");
  //将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();

这样,漂亮的水晶报表就显示出来了。程序异常处理部分省略,请自行加入。

时间: 2024-05-20 10:31:14

水晶报表在VC++6.0中的简单使用方法的相关文章

asp.net水晶报表参数字段在代码中赋值的方法

  本文实例讲述了asp.net水晶报表参数字段在代码中赋值的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 // 声明将参数传递给查看器控件所需的变量. ParameterFields paramFields = new ParameterFields (); ParameterField paramField = new Parameter

动态-vc++6.0 中teechart不懂之处

问题描述 vc++6.0 中teechart不懂之处 BOOL CCccDlg::OnInitDialog(){ CDialog::OnInitDialog(); AfxEnableControlContainer(); COleDateTime now=COleDateTime::GetCurrentTime();//得到当前的时间 CString strDate=now.Format(""%Y-%m-%d"");//得到日期 CString strTime=no

封装-有关vc++6.0中的MFC的问题

问题描述 有关vc++6.0中的MFC的问题 用MFC编写一个windows资源管理器模拟器中怎样进行封装 解决方案 参考这个代码http://www.codeproject.com/Articles/2691/System-Drives-Explorer 解决方案二: 效果图 解决方案三: 你想封装什么?_? 功能实现还是比较简单的,标准的 API 就可以完成文件浏览的操作,FindFirstFile()等一系列API 的使用就能满足要求. 解决方案四: 用vc实现资源管理器功能http://

请问vc++ 6.0中如何计算1+2+3+...+100

问题描述 请问vc++ 6.0中如何计算1+2+3+...+100 请问vc++ 6.0中如何计算1+2+3+...+100 请问vc++ 6.0中如何计算1+2+3+...+100 请问vc++ 6.0中如何计算1+2+3+...+100 解决方案 手机微信聊天记录怎么恢复微信查看聊天记录删除的微信聊天记录怎么恢复? 解决方案二: void fun(int n)//功能函数 { int s=0, i; for(i=1; i<=n; i++) { s=s+i; } printf("%d&q

vc++6.0中更换数据库oracle9i为access 2007数据库。

问题描述 vc++6.0中更换数据库oracle9i为access 2007数据库. 在vc++6.0编的程序中使用的是oracle 9i数据库,如果换成access2007数据库需要更换哪些代码啊? 解决方案 数据库迁移,postgresql到oracle9iC#连接不上Oracle9i数据库Oracle9i 数据库设计指引全集 解决方案二: 这要看用到了多少不同的关键字和内置函数了, 如果都是使用的标准SQL语句的话,改动应该不大:

VC++6.0中如 何 改 变 登陆窗体和主窗 体 的 背景图片

问题描述 VC++6.0中如 何 改 变 登陆窗体和主窗 体 的 背景图片 求 大 神 教 ! VC++6.0中如 何 改 变 登陆窗体和主窗 体 的 背景图片 解决方案 参考:http://www.2cto.com/kf/201111/110696.html 解决方案二: 有好几种方法,可以参考:link text 解决方案三: 在onpaint里边自绘就可以了. 解决方案四: OnPaint或者OnDraw中BitBlt/StretchBlt()贴图

asp.net水晶报表参数字段在代码中赋值的方法_实用技巧

本文实例讲述了asp.net水晶报表参数字段在代码中赋值的方法.分享给大家供大家参考.具体实现方法如下: // 声明将参数传递给查看器控件所需的变量. ParameterFields paramFields = new ParameterFields (); ParameterField paramField = new ParameterField (); ParameterDiscreteValue discreteVal = new ParameterDiscreteValue (); P

vc++6.0中代码问题:显示完整的现存学员信息后,还要显示主菜单

问题描述 vc++6.0中代码问题:显示完整的现存学员信息后,还要显示主菜单 #include #include int menu(); void init(); void listStu(); int insertNewStu(int row); int getStuRowByNo(char no[]); int deleteByNo(); void analyse(char c[]); /****************************************************

c++的问题-C++类中定义 const static 成员变量为啥在VC++6.0中 编译不过

问题描述 C++类中定义 const static 成员变量为啥在VC++6.0中 编译不过 class GradeBook { public: //constant -- number of students who took the test const static int students = 0; //constructor initialize course name and array of grades GradeBook( string, const int [] ); voi