水晶报表运行时提示是无效报表源?

问题:
---------------------------------------------------------------
oRpt=new CrystalDecisions.CrystalReports.Engine.ReportDocument();
string reportPath=Application.StartupPath.ToString().Trim()+"\\Report1.rpt";
oRpt.Load(reportPath);
oRpt.SetDataSource(Form2.AllDataSet);
this.crystalReportViewer1.ReportSource=oRpt;
运行时说我是无效报表源!

reportPath=Application.StartupPath.ToString().Trim()+"\\Report1.rpt";
//oRpt.Load(reportPath);
//oRpt.SetDataSource(Form2.AllDataSet);
this.crystalReportViewer1.ReportSource=reportPath;
这样就对了!
为什么我不能动态载入啊???郁闷啊!!!要分的不够再加,只要能解决问题!
---------------------------------------------------------------

解答:
---------------------------------------------------------------
第二种位拉式报表
第一种为推式:
oRpt=new CrystalDecisions.CrystalReports.Engine.ReportDocument();
---》
oRpt=new 你定义的水晶报表类

oRpt.SetDataSource(Form2.AllDataSet);
this.crystalReportViewer1.ReportSource=oRpt;

---------------------------------------------------------------

6、问题:无效的报表源
-------------------------
问题分析:
ReportDocument、CrystalReportViewer 组件和 CrystalDecisions 程序集的版本不一致:
-------------------------
解决方案:
(1)删除所有的 CrystalDecisions 程序集引用;
(2)删除所有的ReportDocument、CrystalReportViewer 组件;
(3)按照2、修改 Visual Studio.NET 的工具箱设置;
(4)重新添加组件,自动生成新引用。
---------------------------------------------------------------

安装 Crystal Report 9.2 后产生的问题及解决方案(作者:海波.NET,更新:2003-10-19)
-------------------------------------------------------------------------
目录:
一、引言
二、概念与原理
三、问题
1、编译器错误信息: BC30560: “CrystalReportViewer”在命名空间“CrystalDecisions.Web”中不明确。
2、复制 Crystal Report Viewer 时,显示“控件创建错误”。
3、创建 Crystal Report Viewer 时,显示“控件创建错误”。
4、分析器错误信息: 基类包括字段“CrystalReportViewer1”,但其类型 (CrystalDecisions.Web.CrystalReportViewer) 与控件 (CrystalDecisions.Web.CrystalReportViewer) 的类型不兼容。
5、分析器错误信息: 找到的名为“CrystalDecisions.Shared”的程序集清单定义与程序集引用不匹配。
6、问题:无效的报表源
7、如果你用的是 VS.NET 2003……
8、问题:在 web.config 中新建一个工程时没有

 1<assemblies><add assembly="CrystalDecisions.CrystalReports.Engine, Version=9.2.3300.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"></add>   
 2我手工添加后出现配置错误!!!   
 3\-------------------------------------------------------------------------   
 4一、引言   
 5在.NET 里,DLL Hell 问题被解决——包含元数据的,具有自描述性的程序集及其 XCopy 部署!   
 6但是,又似乎带来了新的问题——.NET 程序升级、迁移问题……   
 7升级不再只是简单安装,有工作不得不做了……   
 8\-------------------------------------------------------------------------   
 9二、概念与原理   
101、各种 Crystal Reports 程序的“程序集版本”……   
11Crystal Reports for Visual Studio .NET 2002   
12Crystal Reports 管理组件的“程序集版本”为 9.1.3300。   
13  
14Crystal Reports for Visual Studio .NET 2003 的程序   
15Crystal Reports 管理组件的“程序集版本”为 9.1.5000.0。   
16  
17Crystal Reports 9 的程序(仅限于 Visual Studio 2002)   
18Crystal Reports 管理组件的“文件版本”为 9.2.9466.x。   
19  
20Crystal Reports 9.2 的程序(与 Visual Studio 2002 和 2003)   
21Crystal Reports 管理组件的“文件版本”为 9.2.9500.x。   
22\------------------------------------------------   
232、Crystal Report Viewer   
24VS.NET 里的 Crystal Report Viewer 版本是 9.1.3300.0,   
25Crystal Report 9.2 里的 Crystal Report Viewer 版本是 9.2.3300.0   
26为窗体添加 Crystal Report Viewer 后,会在 aspx 文件里增加以下代码,缺一不可。   
27代码(1)```
28@ Register TagPrefix="cr" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web, Version=9.1.3300.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" 

是为了引入命名空间 CrystalDecisions.Web。
代码(2)<cr:crystalreportviewer displaygrouptree="False" enabledrilldown="False" height="50px" id="CrystalReportViewer1" runat="server" width="350px"></cr:crystalreportviewer>
是表示 CrystalReportViewer 控件的标签。
-------------------------------------------------------------------------
三、问题
1、编译器错误信息: BC30560: “CrystalReportViewer”在命名空间“CrystalDecisions.Web”中不明确。
-------------------------
问题分析:
在“设计视图”删除 Crystal Report Viewer 后,代码(1)仍然存在,如果此时再次添加新版本的 Crystal Report Viewer,会导致出现两个不同的代码(1):

1@ Register TagPrefix="cr1" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web, Version=9.2.3300.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" 
1@ Page language="vb" Codebehind="Analysis.aspx.vb" AutoEventWireup="false" Inherits="Research_VB.Analysis" 
1@ Register TagPrefix="cr" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web, Version=9.1.3300.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" 

-------------------------
解决方案:
把 Crystal Report Viewer 和所有代码(1)删除,重新添加 Crystal Report Viewer。
------------------------------------------------
2、复制 Crystal Report Viewer 时,显示“控件创建错误”。
-------------------------
问题分析:
复制 Crystal Report Viewer 时,代码(1)不会被复制。
-------------------------
解决方案:
手工复制代码(1)。
------------------------------------------------
3、创建 Crystal Report Viewer 时,显示“控件创建错误”。
-------------------------
问题分析:
如果不是残存代码(1),就是匪夷所思……
-------------------------
解决方案:
(1)先在“设计视图”删除 Crystal Report Viewer 控件;
(2)再到“HTML 视图”删除代码(1)
(3)创建 Crystal Report Viewer ;
如果显示“控件创建错误”,则切换到“HTML”视图,再切换会“设计”视图,自动恢复!!!
------------------------------------------------
4、分析器错误信息: 基类包括字段“CrystalReportViewer1”,但其类型 (CrystalDecisions.Web.CrystalReportViewer) 与控件 (CrystalDecisions.Web.CrystalReportViewer) 的类型不兼容。
-------------------------
问题分析:
代码(1)不是当前 Crystal Report Viewer 的版本
-------------------------
解决方案:
把 Crystal Report Viewer 和所有代码(1)删除,重新添加 Crystal Report Viewer。
------------------------------------------------
5、分析器错误信息: 找到的名为“CrystalDecisions.Shared”的程序集清单定义与程序集引用不匹配。
源文件: E:\web\VenditionSystem\web.config 行: 15
程序集加载跟踪: 下列信息有助于确定程序集“CrystalDecisions.Shared”无法加载的原因。
-------------------------
问题分析:
程序集 CrystalDecisions.Shared 在 web.config 里的程序集清单定义是 CR FOR VS.NET 版本的,而项目中引用的是 CR 9.X 版本的……
-------------------------
解决方案一:
新建一个解决方案,在窗体里添加 Crystal Report Viewer,会自动在 web.config 中生成新版本的程序集清单定义,然后把这个 web.config 复制过来……
解决方案二:
修改 web.config 里的旧版本的程序集清单定义:

把 Version=9.1.3300.0 改成 Version=9.2.3300.0。
-------------------------
总结:其它 CrystalDecisions 程序集引用的冲突问题如:CrystalDecisions.CrystalReports.Engine,解决方案同上。
------------------------------------------------
6、问题:无效的报表源
-------------------------
问题分析:
ReportDocument、CrystalReportViewer 组件和 CrystalDecisions 程序集的版本不一致:
-------------------------
解决方案:
(1)删除所有的 CrystalDecisions 程序集引用;
(2)删除所有的ReportDocument、CrystalReportViewer 组件;
(3)按照2、修改 Visual Studio.NET 的工具箱设置;
(4)重新添加组件,自动生成新引用。
------------------------------------------------
7、如果你用的是 VS.NET 2003……
问题:就是不行。 升级后没有拖放控件没有代码(1)!!!
问题分析:
如果你用的是 VS.NET 2003,则 Crystal Reports 9 (版本 9.2.0.x) 不能正确运行,需要升级到 CR 9 (版本 9.2.2.x).
具体问题如下:
- 添加新报表到项目,却没有生成相应的报表类文件
- 添加新报表或者报表查看器(viewer)到项目,却没有自动添加必需的引用
- 不能创建强类型报表(strongly-typed report)的实例
解决方案:
升级到 CR 9 (版本 9.2.2.x).
------------------------------------------------
8、问题:在 web.config 中新建一个工程时没有<add assembly="CrystalDecisions.C

Published At
Categories with Web编程
Tagged with
comments powered by Disqus