Crystal Report X在Visual C++ 2003/2005中的使用

原创 2006年05月27日 12:41:00

方法一:
(也可以不用namespace,看个人习惯)
#include "craxddrt.h" //VC6中引入类型库中的类,并在生成的文件中添加名为CrystalReportWrapper的namespace
craxddrt.h修改:
namespace CrystalReportWrapper
{
...//craxddrt.h内容
}
craxddrt.cpp中在#include "craxddrt.h"后添加:
using namespace CrystalReportWrapper;


 CCrystalReport10Viewer crReportViewer;
 CrystalReportWrapper::IApplication crApplication;
 CrystalReportWrapper::IReport crReport;
 CrystalReportWrapper::IDatabase crDatabase;
 CADODatabase adoDatabase;
 CADOCommand adoCommand;


 crApplication.CreateDispatch("CrystalDesignRunTime.Application.10");
 COleVariant var((short)1);
 crReport=crApplication.OpenReport("Report.rpt",var);
 crDatabase=crReport.GetDatabase();

 adoDatabase.ConnectAccess("soft.mdb");
 adoCommand.SetDatabase(&adoDatabase);
 adoCommand.SetText("SoftClass");
 adoCommand.SetType(adCmdTable);

 VARIANT var3;
 var3.vt=VT_DISPATCH;
 var3.punkVal=adoDatabase.m_pConnection;
 VARIANT var4;
 var4.vt=VT_DISPATCH;
 var4.punkVal=adoCommand.GetCommand();
 crDatabase.AddADOCommand(var3,var4);
 crReportViewer.Create(NULL,WS_CHILD | WS_VISIBLE, CRect(0,0,0,0),this,1);
 crReportViewer.put_ReportSource(crReport);
 crReportViewer.Refresh();
 crReportViewer.ViewReport();
 
方法二:

(注释为不带namespace)
#import "C:/Program Files/Common Files/Business Objects/2.7/Bin/craxddrt.dll"
//#import "C:/Program Files/Common Files/Business Objects/2.7/Bin/craxddrt.dll" no_namespace

 CCrystalReport10Viewer crReportViewer;
 CRAXDDRT::IApplicationPtr crApplication;
 CRAXDDRT::IReportPtr crReport;
 CRAXDDRT::IDatabasePtr crDatabase;
 //IApplicationPtr crApplication;
 //IReportPtr crReport;
 //IDatabasePtr crDatabase;
 CADODatabase adoDatabase;
 CADOCommand adoCommand;
 
 HRESULT hr = crApplication.CreateInstance(__uuidof(CRAXDDRT::Application));
 //HRESULT hr = crApplication.CreateInstance(__uuidof(Application));
 if(FAILED(hr))
 {
  MessageBox(_T("水晶报表初始化出错!"));
  return   -1;
 }
 COleVariant var((short)1);
 crReport=crApplication->OpenReport("Report.rpt",var);
 crDatabase=crReport->GetDatabase();

 adoDatabase.ConnectAccess("soft.mdb");
 adoCommand.SetDatabase(&adoDatabase);
 adoCommand.SetText("SoftClass");
 adoCommand.SetType(adCmdTable);

 VARIANT var3;
 var3.vt=VT_DISPATCH;
 var3.punkVal=adoDatabase.m_pConnection;
 VARIANT var4;
 var4.vt=VT_DISPATCH;
 var4.punkVal=adoCommand.GetCommand();
 crDatabase->AddADOCommand(var3,var4);
 crReportViewer.Create(NULL,WS_CHILD | WS_VISIBLE, CRect(0,0,0,0),this,1);
 crReportViewer.put_ReportSource(crReport);
 crReportViewer.Refresh();
 crReportViewer.ViewReport();
 
方法三:
//这几个头文件由VC7.1添加类型库中的类产生,添加所需要的类
#include "CrystalReport10Application.h"
#include "CrystalReport10Report.h"
#include "CrystalReport10Database.h"
#include "CrystalReport10Sections.h"
#include "CrystalReport10Designer.h"


 CCrystalReport10Viewer crReportViewer;
 CCrystalReport10Application crApplication;
 CCrystalReport10Report crReport;
 CCrystalReport10Database crDatabase;
 CADOCommand adoCommand;

 crApplication.CreateDispatch("CrystalDesignRunTime.Application.10");
 COleVariant var((short)1);
 crReport=crApplication.OpenReport("Report.rpt",var);
 crReport.put_EnableAsyncQuery(TRUE);
 crDatabase=crReport.get_Database();
 adoCommand.SetDatabase(&theApp.m_pConnection);
 adoCommand.SetText("SoftClass");
 adoCommand.SetType(adCmdTable);
 VARIANT var3;
 var3.vt=VT_DISPATCH;
 var3.punkVal=theApp.m_pConnection.m_pConnection;
 VARIANT var4;
 var4.vt=VT_DISPATCH;
 var4.punkVal=adoCommand.GetCommand();
 //crDatabase.AddADOCommand(var3,var4);

 crReportViewer.Create(NULL,WS_CHILD | WS_VISIBLE, CRect(0,0,0,0),this,1);
 crReportViewer.put_ReportSource(crReport);
 crReportViewer.ViewReport();

在VC中使用水晶报表

水晶报表是一个报表设计开发的强大工具,功能强大,设计灵活,在水晶报表光盘中只提供了一个完全动态生成报表的例子,使用繁琐。现介绍其在VS2005 VC++中的简单使用方法。编译环境:VS2005 VC+...
  • memory_xj
  • memory_xj
  • 2008年04月16日 14:18
  • 5950

在 Visual Studio .NET中使用Crystal Report(上)

在 Visual Studio .NET中使用Crystal Report(上) from www.aspfree.comtranslated by cash(天下第七)cashcao@msn.com...
  • cashcho
  • cashcho
  • 2002年02月05日 10:47
  • 4235

visual studio中如何使用水晶报表(crystal report)

crystal report 中文名 水晶报表 你使用visual studio这个ide进行开发的时候,可以在向导中,单独创建一个 crystal report 然后,在你的代码中调用这个水晶报表...
  • charliefromkansas
  • charliefromkansas
  • 2017年02月23日 16:16
  • 613

Crystal Report 在 VS 2010 中的使用

如果只是为了能够在VS2010中运行有报表的程序,则可以简单的将运行程序所需的dll引入项目即可。如果你的机器没有这些组件可以来这下载:点我。一般只需要引用CrystalDecisions.Cryst...
  • moon66sun
  • moon66sun
  • 2013年12月31日 14:17
  • 1007

Crystal Reports basic for Visual Studio 2008部署 .

本文转自:http://www.cnblogs.com/whhcode/archive/2008/01/08/1030661.html 原作者:红着眼的狼 近日帮朋友写了一个基于Web的...
  • zcyy1211
  • zcyy1211
  • 2012年11月01日 17:02
  • 6298

C#.Net中使用Crystal Report

大名鼎鼎的 Crystal Reports(水晶报表)已内嵌为微软 Visual Studio .NET的标准报表工具,同时升级到 Crystal Reports for Visual Studio ...
  • wlwqw
  • wlwqw
  • 2007年09月21日 21:15
  • 1391

crystal reports for Visual Studio .NET(webformsample)

Crystal Reports ®For Visual Studio .NET®Interactivity and Reports in Web ApplicationsInteractivity a...
  • mdma
  • mdma
  • 2005年04月13日 18:10
  • 1229

[老贴]Crystal Report 学习笔记(1)

  学习资料:《用实例学 Crystal Report for Visual Studio.Net》章立民著1,  Crystal Report for vs.net以Crystal Report...
  • phinecos
  • phinecos
  • 2006年08月13日 14:02
  • 832

crystalreport打印

总结以后,共有以下几个步骤:1、添加新项,新建一个Crystal报表。2、需要在web.config上加一段配置的代码                               http://loc...
  • tao19840705
  • tao19840705
  • 2011年06月13日 14:18
  • 1143

Crystal Report制作使用

Crystal Report制作使用本文主要划分为以下六部分:一、Crystal Report for .NET 的功能二、Crystal Report总体结构三、报表数据访问执行模式四、报表类型五、...
  • jackeyabc
  • jackeyabc
  • 2007年10月25日 09:12
  • 2590
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Crystal Report X在Visual C++ 2003/2005中的使用
举报原因:
原因补充:

(最多只允许输入30个字)