如何部署水晶报表

sdl2005lyx 2006-09-25 09:47:35
我开发一个含有水晶报表的程序,不知道如何如何做到安装程序中,需要打包哪些文件,请教高手!!
...全文
397 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
interboy 2006-09-26
  • 打赏
  • 举报
回复
2005的安装目录里有水晶报表的安装程序,把它给服务器装上可以了
Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages这个文件夹里有好多东西,不光是水晶报表
sdl2005lyx 2006-09-26
  • 打赏
  • 举报
回复
是不是这些文件只在net2003上才有,net2005没有啊???
sdl2005lyx 2006-09-26
  • 打赏
  • 举报
回复
Csharp110(~泰山~):
你好,我这里有一个问题:在C:\Program Files\Common Files\Merge Modules的目录下,我的机器上只有如下的文件,没有你所说的几个文件,该怎么办啊??

Microsoft_VC80_ATL_x86.msm
Microsoft_VC80_CRT_x86.msm
Microsoft_VC80_DebugCRT_x86.msm
Microsoft_VC80_DebugMFC_x86.msm
Microsoft_VC80_DebugOpenMP_x86.msm
Microsoft_VC80_MFC_x86.msm
Microsoft_VC80_MFCLOC_x86.msm
Microsoft_VC80_OpenMP_x86.msm
policy_8_0_Microsoft_VC80_ATL_x86.msm
policy_8_0_Microsoft_VC80_CRT_x86.msm
policy_8_0_Microsoft_VC80_DebugCRT_x86.msm
policy_8_0_Microsoft_VC80_DebugMFC_x86.msm
policy_8_0_Microsoft_VC80_DebugOpenMP_x86.msm
policy_8_0_Microsoft_VC80_MFC_x86.msm
policy_8_0_Microsoft_VC80_MFCLOC_x86.msm
policy_8_0_Microsoft_VC80_OpenMP_x86.msm
sdl2005lyx 2006-09-26
  • 打赏
  • 举报
回复
interboy(冯东) :
你的意思是单独安装水晶报表??
dzhu_87 2006-09-25
  • 打赏
  • 举报
回复
需要打包Crystal_DataBase_Access2003.msm,Crystal_Managed2003.msm,Crystal_Regwiz2003.msm
wl22817560 2006-09-25
  • 打赏
  • 举报
回复

http://community.csdn.net/Expert/topic/5045/5045049.xml?temp=.7106897
借点人气 找人帮帮忙
dreamTown 2006-09-25
  • 打赏
  • 举报
回复
帮你D
sdl2005lyx 2006-09-25
  • 打赏
  • 举报
回复
每人顶,自己up!
sdl2005lyx 2006-09-25
  • 打赏
  • 举报
回复
Csharp110(~泰山~):
谢谢。。。
Csharp110 2006-09-25
  • 打赏
  • 举报
回复
部署水晶报表时的常见问题及解决方案
(1)载入报表时报错
问题出在报表发布上。发布使用水晶报表的项目需要包含三种组件:报表(*.rpt)、模块(*.msm)、运行库(*.msm),这些模块文件是在 C:\Program Files\Common Files\Merge Modules\ 目录里面。
A.报表(*.rpt):用户编程时创建的水晶报表文件。
B.模块(*.msm):
Managed.msm 该模块包含了CR for VS .NET 的管理模块,如 CrystalDecisions、CrystalReports.Engine.DLL、CrystalDecisions.Web.DLL, 和 CrystalDecisions.Windows.Forms.DLL……
Managed_chs.msm 是该模块的中文版语言支持。
Database_Access.msm 该模块包含了数据库的驱动、与不同数据库的联结、报表导出为 RTF 和 HTML 格式的文档和图表组件。
Database_Access_chs.msm 是此模块的中文版语言支持。
Regwiz.msm 注册信息模块,非常重要,必需在这个模块输入水晶报表的注册序列号,如果不填,编译的时候就无法通过
C:运行库(*.msm):
如果报表文件使用了 ADO.NET 的 dataset 数据集对象,那么 VC_CRT.msm 和 VC_STL.msm 模块也必须包含在安装工程中。而且这两个模块的文件安装属性的\Module Retargetable Folder\项必须修改成为系统目录。在VS.NET安装工程中,系统检测出来的依赖项只有 dotNETFXRedist_x86_chs.msm 和 Managed.msm这两个模块,其他的模块我们需要手动加入。

(2)部署到 Windows 98 / ME 时,出错:\Load Report Failed\
这是因为查询引擎 DLL(CRQE.dll)在客户计算机上没有正确注册。要解决这个问题,可以在客户计算机上手动注册 CRQE.dll,使用下面的命令:
regsvr32 \C:\program files\common files\Crystal Decisions\1.0\bin\CRQE.dll\
如果 CRQE.dll 没有成功注册,并且问题继续存在,在客户计算机上检查 ATL.dll 的版本。ATL.dll for Windows 98/ME 正确的版本是 3.0.8449。通过使用下面三种方法中的任意一种方法,可以找到并注册正确版本的 ATL.dll。
A.在客户计算机上装 IE6.0。
B.在客户计算机上,手动复制和注册 ATL.dll,然后运行用于 Crystal Reports 分发的安装包。
C.将 ATL.msm 合并模块添加到安装工程,ATL.msm 是 Visual Studio installer 1.1 的一部分,可以去微软的网站http://msdn.microsoft.com/vstudio/downloads/tools/vsi11/download.aspx下载, 添加办法同上。

(3)在Win98的客户端运行提示\该字段名未知\
报表在Win2000的客户端一切正常,在Win98的客户端运行提示\该字段名未知\?是因为报表使用到的 sql server 数据库中的字段名为中文的缘故,将其字段名改名为英文字段名。

(4)分发到客户机时“查询引擎出错”
“安装项目”要包含下列合并模块:VC_CRT.msm ,VC_STL.msm ;此外,确保 Msvcr70.dll 和 Msvcp70.dll 在客户计算机的“系统目录”里。

(5)load crpe32.dll failed
下面是cr9net_deployment.pdf说明中的部署Crystal Report 9的步骤:
打开 Windows 应用程序。 在解决方案资源管理器中,右击 Windows 应用程序解决方案,指向“添加”,然后单击“新建项目”。在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。单击“确定”按钮。
在解决方案资源管理中,右击安装项目,指向“添加”,然后单击“项目输出”。 在“添加项目输出组”中,选择“主输出”,然后单击“确定”。 将自动添加所有依赖项,如 dotnetfxredist_x86_enu.msm和dotnetcrystalreports.msm。需要将dotnetcrystalreports.msm排除在项目之外,在解决方案资源管理器中右击这个模块的右键,选择“排除”。 在解决方案资源管理器中,右击安装项目,指向“添加”,然后单击“合并模块”。 在“添加模块”对话框中,选择下列要添加到安装项目的合并模块,然后单击“打开”:
reportengine.msm, crnetruntime.msm, license.msm
mapping.msm (可选,当在报表中使用了geographic maps时)
VC_CRT.msm、VC_STL.msm( 如果您部署的 Windows 应用程序使用 ADO.NET 数据集,则还需要包括 VC_CRT 和 VC_STL 合并模块)
在解决方案资源管理器中,右击 license.msm 文件,然后选择“属性”。 在“属性”窗口中,展开 MergeModuleProperties,然后在“许可证密钥”属性框中输入一个有效的许可证密钥。 注意 每当部署 Crystal Reports 应用程序时,必须提供许可证密钥。从“生成”菜单中,选择“生成解决方案”以生成应用程序。

(6)在 ASP.NET 程序中加载报表时,出错:\Load Report Failed\
确保 ASPNET 本地用户对报表所在的文件夹有“完全控制”的权限。

(7)部署 .NET 9.1 程序到 Windows 98 时,出错:\Load Report Failed\
是因为查询引擎 DLL(CRQE.dll)在客户计算机上没有正确注册。要解决这个问题,从开发计算机复制 Dbghelp.dll 到客户计算机的\C:Windows\system32\ 文件夹。
在线支持:http://www.kpower.nease.net/main.html













可以通过单独用代码绑定子报表来解决这个问题。

string sConnectionString = ConfigurationSettings.AppSettings["dbCommISMS"];

SqlConnection sqlConn = new SqlConnection(sConnectionString);
SqlCommand sqlComm = new SqlCommand();
SqlDataAdapter dataAdapter = new SqlDataAdapter();

sqlConn.Open();

sqlComm.Connection = sqlConn;
sqlComm.CommandType = CommandType.Text;

dataAdapter.SelectCommand = sqlComm;

Dataset1 dataSet = new Dataset1();

string sSQL = "SELECT * FROM T_REQUEST WHERE APPLI_ID = ‘" + appli_id + "‘";

sqlComm.CommandText = sSQL;
dataAdapter.Fill(dataSet, "T_REQUEST");

sSQL = "SELECT * FROM T_REQUEST_INSPECTION WHERE APPLI_ID = ‘" + appli_id + "‘";

sqlComm.CommandText = sSQL;
dataAdapter.Fill(dataSet, "T_REQUEST_INSPECTION");

sSQL = "SELECT * FROM T_ACCEPT_INSPECTION WHERE APPLI_ID = ‘" + appli_id + "‘";

sqlComm.CommandText = sSQL;
dataAdapter.Fill(dataSet, "T_ACCEPT_INSPECTION");

SubreportObject oSubreport1 = oRpt.ReportFooterSection1.ReportObjects["Subreport1"] as SubreportObject;
ReportDocument oSub1 = oSubreport1.OpenSubreport("Inspection");

oSub1.SetDataSource(dataSet);

SubreportObject oSubreport2 = oRpt.ReportFooterSection2.ReportObjects["Subreport2"] as SubreportObject;
ReportDocument oSub2 = oSubreport1.OpenSubreport("Survey");

oSub2.SetDataSource(dataSet);

SubreportObject oSubreport3 = oRpt.ReportFooterSection2.ReportObjects["Subreport3"] as SubreportObject;
ReportDocument oSub3 = oSubreport1.OpenSubreport("Allonge");

oSub3.SetDataSource(dataSet);

oRpt.SetDataSource(dataSet);

oViewer.ReportSource = oRpt;

oRpt 有三个字报表,dataSet 有三个表。
上述代码通过访问每个字报表,来实现子
sdl2005lyx 2006-09-25
  • 打赏
  • 举报
回复
dzhu_87(dzhu_87):
能说得详细点吗?我是在net2005平台下开发的,有实际例子最好了!!
邮箱:sdl2002lyx@163.com,谢谢。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧