安装和部署项目--水晶报表

转载 2006年06月13日 10:55:00

如果你想在“干净”的机器上成功安装和使用水晶报表,请按照下列步骤:

1)新建“安装和部署项目”-->“安装向导”
(2)选择项目类型(这里选“创建用于windows应用程序的安装程序”)-->下一步
(3)选择要包含的文件:要部署使用 Crystal Reports for Visual Studio .NET 2003 的程序,需要添加合并模块(在解决方案资源管理器中tree的顶端节点右键-->添加).
Crystal_Database_Access2003.msm
Crystal_Database_Access2003_enu.msm
Crystal_Managed2003.msm
Crystal_regwiz2003.msm
VC_User_CRT71_RTL_X86_---.msm
VC_User_STL71_RTL_X86_---.msm
你可以 'C:/Program Files/Common Files/Merge Modules' 文件夹下找到替换的合并模块。
(4)打开解决方案-->右键点击Crystal_regwiz2003.msm 的属性,在“MergeMouduleProperties”里的“License Key”填入:***************************(这个是你生成Crystal Report是用到的注册号的密码!)
(5)生成解决方案
如果没有第四步,会产生在执行打印报表时提示keycodev2.dll或者无效密码的错误。
以上的步骤,如果你的“干净”的机器上装有水晶报表,那么到这里完全就可以了。
如果你不希望在“干净”的机器上装水晶报表,继续以下的步骤:
在“添加项目输出组”中,选择“主输出”,然后单击“确定”。
将自动添加所有依赖项,如 dotnetfxredist_x86_enu.msm和dotnetcrystalreports.msm。
  2.需要将dotnetcrystalreports.msm排除在项目之外,在解决方案资源管理器中右击这个模块的右键,选择“排除”。
  3.在解决方案资源管理器中,右击安装项目,指向“添加”,然后单击“合并模块”。
  4.在“添加模块”对话框中,选择下列要添加到安装项目的合并模块,然后单击“打开”:
reportengine.msm,
crnetruntime.msm
license.msm
mapping.msm (可选,当在报表中使用了geographic maps时)
     5.在解决方案资源管理器中,右击 license.msm 文件,然后选择“属性”。
  6.在“属性”窗口中,展开 MergeModuleProperties,然后在“许可证密钥”属性框中输入一个有效的许可证密钥。
    注意 :  每当部署 Crystal Reports 应用程序时,必须提供许可证密钥。
  7.从“生成”菜单中,选择“生成解决方案”以生成应用程序
  如果以上步骤没有的化,会提示“load crpe32.dll failed”的错误。
  用到的模块下载地址:  http://support.businessobjects.com/communityCS/FilesAndUpdates/cr9netmergemodules_chs.zip.asp
http://support.businessobjects.com/communityCS/FilesAndUpdates/cr9netredist_chs.zip.asp
http://support.businessobjects.com/communityCS/FilesAndUpdates/cr9rdcmergemodules_chs.zip.asp
  如果你的机器上装的是windows 98,不继续以下的步骤会产生"Load Report Failed" (CRQE.dll)的错误。
报表在部分Win98的客户端可以载入,在部分Win98的客户端载入报表时却提示"Load Report Failed"是因为水晶报表运行时所需的 CRQE.dll 在客户端的系统注册不正确,而原因又是ATL.dll 的版本不对(Windows 98/ME下的正确版本号应为3.0.8449)。
解决办法有两条:
1.在客户端安装 IE6.0,难怪有的客户端运行正常。
2.将 ATL.msm 模块添加到安装工程,ATL.msm 是 Visual Studio installer 1.1 的一部分,可以去微软的网站http://msdn.microsoft.com/vstudio/downloads/tools/vsi11/download.aspx下载, 添加办法同上。
至此,可以说打包基本完成。不过还要注意:
如果你用的是水晶报表的推模式,一般不用设置登陆信息,但是要这样写:obj.SetDataSource(this.ds.Tables["tablename"]);如果你写成了obj.SetDataSource(this.ds)就会有登陆框的。
如果你用的是水晶报表的拉模式,你就一定要写上登陆信息:
crReportDocument = new OracleReport();
   //Set the crConnectionInfo with the current values stored in the report
   crConnectionInfo = crReportDocument.Database.Tables[0].LogOnInfo.ConnectionInfo;
   /* Populate the ConnectionInfo Objects Properties with the appropriate values for
   the ServerName, User ID, Password and DatabaseName. However, since Oracle
   works on Schemas, Crystal Reports does not recognize or store a DatabaseName.
   Therefore, the DatabaseName property must be set to a BLANK string. */
   crConnectionInfo.DatabaseName = "";
   crConnectionInfo.ServerName = "Your Server Name";
   crConnectionInfo.UserID = "Your User ID";
   crConnectionInfo.Password = "Your Password";
   //Set the CrDatabase Object to the Report's Database
   crDatabase = crReportDocument.Database;
   //Set the CrTables object to the Tables collection of the Report's dDtabase
   crTables = crDatabase.Tables;
   //Loop through each Table object in the Tables collection and apply the logon info
   //specified ealier. Note this sample only has one table so the loop will only execute once
   foreach (Table crTable in crTables)
   {
    crTableLogOnInfo = crTable.LogOnInfo;
    crTableLogOnInfo.ConnectionInfo = crConnectionInfo;
    crTable.ApplyLogOnInfo (crTableLogOnInfo);

    // if you wish to change the schema name as well, you will need to set Location property as follows:
    // crTable.Location = "<new schema name>." + crTable.Name;
   }
   //Set the ReportSource of the CrystalReportViewer to the strongly typed Report included in the project
   crystalReportViewer1.ReportSource = crReportDocument;
还有一点要注意:
如果你用到了子报表,一定要处理:
//Go through each sections in the main report and identify the subreport by name
   crSections = crReportDocument.ReportDefinition.Sections;

   foreach(Section crSection in crSections)
   {
    crReportObjects = crSection.ReportObjects;
    //loop through all the report objects to find all the subreports
    foreach(ReportObject crReportObject in crReportObjects)
    {
     if (crReportObject.Kind == ReportObjectKind.SubreportObject)
     {
      //you will need to typecast the reportobject to a subreport
      //object once you find it
      crSubreportObject = (SubreportObject)crReportObject;

      //open the subreport object
      crSubReportDoc = crSubreportObject.OpenSubreport(crSubreportObject.SubreportName);
      //Once the correct subreport has been located pass it the
      //appropriate dataset
      if(crSubReportDoc.Name == "FirstSub")
      {
       //crSubReportDoc.Database.Tables[0].SetDataSource(ds);
       crSubReportDoc.SetDataSource(ds);
      }
     }
    }
   }
   crystalReportViewer1.ReportSource = crReportDocument;

同样crSubReportDoc.SetDataSource(ds);改为:crSubReportDoc.SetDataSource(ds.Tables["tablename"]);

VS2010下水晶报表的使用总结-从安装到使用到部署,有图有真相

VS2010下水晶报表的使用总结-从安装到使用到部署,有图有真相。 公司要做一个有关水晶报表的打印,让我自己研究怎么使用,整整折磨我好几天。做了有关winform和Web两种方式的。我的开发环境是V...
  • ping0926
  • ping0926
  • 2013年05月31日 14:03
  • 2680

VS.NET2010水晶报表安装部署[VS2010]

水晶报表VS2010版IDE安装标准版SAP Crystal Reports, version for Visual Studio 2010 - Standard: 下载地址: http://dow...
  • jsjpanxiaoyu
  • jsjpanxiaoyu
  • 2015年01月03日 10:27
  • 11219

CristalReport(水晶报表)插件整合Eclipse开发

CristalReport(水晶报表) 本身的安装版本是.net专用的开发报表的工具,但目前推出了Eclipse插件,便可以进行Java开发报表了,虽然我们项目没有采用(貌似是因为不支持垂直居中,是不...
  • rainyspring4540
  • rainyspring4540
  • 2015年09月01日 09:38
  • 1935

水晶报表制作实例

水晶报表貌似是比较“古老”的报表技术了,它是由SAP公司开发的报表产品,通过安装开发包可以在VS中集成Crystall Reports设计器。通过可视化的设计和操作,可以完成报表的制作。正好最近有空帮...
  • guwei4037
  • guwei4037
  • 2015年04月22日 15:23
  • 7613

JAVA水晶报表从环境搭建到创建动态水晶报表

首先第一步贴上项目截图(少了一个rpt_report文件夹,因为是网上的所以这里没加,各位可以加下):声明该项目是网上下载。(比较简单,纯属偷懒,有现成环境)。可以自己修改,需要注意的就是蓝色标记的地...
  • lovin_fang
  • lovin_fang
  • 2014年11月19日 13:52
  • 1576

VS2010 打包水晶报表中部署问题详解

在vs2010中水晶报表作为一个独立的模块存在,在使用水晶报表前必须安装 使用做个简单的介绍 重点讲解打包水晶报表 因为使用这方面太熟悉不过了 ,从2003 到2005 再到2008 已经使用的太多太...
  • szstephenzhou
  • szstephenzhou
  • 2013年05月09日 09:45
  • 2749

[水晶报表]水晶报表的使用经验和资料总结

水晶报表的使用经验和资料总结资料: Asp.Net中使用水晶报表(上) www.dotnet8.com 2002-9-6 DotNet吧[HTML]在我们对VS.Net中的水晶报表(Cryst...
  • david_520042
  • david_520042
  • 2016年08月17日 09:30
  • 2628

【水晶报表之图片篇-c】 CR 11版本动态加载的另一种简单方案

2005年我在《水晶报表中如何动态加载图片(图片文件版本及数据库版本)》 提供的方法中,用了编程的方法,虽然也实现了,但是比较繁琐 地址: http://www.cnblogs.com/baby...
  • findsafety
  • findsafety
  • 2015年03月24日 16:09
  • 2802

Vs2010中水晶报表引用及打包

转自:http://yunhaifeiwu.iteye.com/blog/1172283 Vs2010中水晶报表引用 在sap官网中下载支持vs 2010中的水晶报表组件。具体地址: ...
  • jun471537173
  • jun471537173
  • 2013年04月17日 16:36
  • 4246

水晶报表自定义函数进行代码重用 -日期大写

   一般我们可以使用公式来实现一些特殊的功能,但是对于一些需要重复处理的情况 可以使用自定义函数来实现 进入公式编辑界面 ,可以看到在左上角有两个项目: 报表自定义函数和储备库自定...
  • xpx1290
  • xpx1290
  • 2016年06月17日 11:57
  • 533
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:安装和部署项目--水晶报表
举报原因:
原因补充:

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