带有水晶报告的 Windows 窗体应用程序错误

Posted

技术标签:

【中文标题】带有水晶报告的 Windows 窗体应用程序错误【英文标题】:Windows form application error with crystal report 【发布时间】:2017-10-04 03:08:43 【问题描述】:

我是 Windows 窗体应用程序的新手。这是我在办公室的第一份申请。 我的办公室管理层给了我源代码。但他们对此一无所知。

我在 Visual Studio 12(64 位)上运行这些代码。一切都在运行,但水晶报告不起作用。引发错误。

错误是:

无法转换 COM 类型的对象 'CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass' 到 接口类型 'CrystalDecisions.ReportAppServer.Controllers.ISCRReportSource'。这 操作失败,因为 COM 组件上的 QueryInterface 调用 对于 IID 为“98CDE168-C1BF-4179-BE4C-F2CFA7CB8398”的接口 由于以下错误而失败:不支持此类接口 (来自 HRESULT 的异常:0x80004002 (E_NOINTERFACE))。

这是屏幕截图:

代码如下:

ReportDAL rDal = new ReportDAL();
            receipt r = new receipt();


            DataTable dt = rDal.GetInvoiceHeader(vId);

            //string ww = GetInvoiceHeader(vId);
            r.Database.Tables["ReceiptDetails"].SetDataSource(rDal.GetInvoiceDetails(vId));
            r.Database.Tables["ReceiptHeader"].SetDataSource(rDal.GetInvoiceHeader(vId));
            r.SetParameterValue("pReportDeliveryTime", GlobalData.reportDeliveryTime);
            crystalReportViewer1.ReportSource = r;

谁能给我一个详细的解决方案?

【问题讨论】:

你安装水晶报表了吗? 使用了哪个 VS 和 CR 版本?检查您的项目引用列表,尝试根据已安装的 CR 版本删除和重新添加所需的引用。 我正在使用 Visual Studio 2012 和 Crystal Report CRforVS_13_0_21 都是 64 位的。但我相信这个源代码是在 Visual Studio 10 / 08 中编写的。那么我现在能做什么呢? 尝试使用gacutil在GAC中注册CR DLL文件,例如gacutil /i [DLL_path](所有 DLL 文件都以 CrystalDecisions 开头)。还要确保CrystalDecisions.ReportAppServer.Controllers 存在于%windir%\assembly 文件夹中。 这为我解决了这个问题:***.com/questions/49123366/… 【参考方案1】:

我现在也遇到了同样的问题。

当我安装 CR 13 Update 21 时,我的项目在运行时出现了同样的异常。

我刚刚从解决方案资源管理器中删除了 CrystalDecision 的所有引用(实际上属于以前版本的 CR,即 CR 13 Update 20)。

然后我从Solution Explorer => References => Add Reference 菜单中添加了新的引用。我从窗口中选择了所需的CrystalDecision 包。重建,现在问题消失了。

【讨论】:

感谢 shahsani,这拯救了我的一天。【参考方案2】:

请在客户端计算机中安装较低运行时版本的 Crystal 报表。然后它将正常工作。就像目前您正在使用 vs2012 cr 运行时然后使用 2008 运行时它会正常工作。

我有同样的问题,但现在我换了较低的版本,然后它对我来说很好。

【讨论】:

谢谢@parth。如果有人想更改版本tektutorialshub.com/download-crystal-reports-for-visual-studio

以上是关于带有水晶报告的 Windows 窗体应用程序错误的主要内容,如果未能解决你的问题,请参考以下文章

在我的 C# 应用程序中打印水晶报告时出错

哪里可以获得13个视觉工作室2013年的水晶报告合并模块

制作多页报表:水晶报表查看器只生成第一页(C#)

水晶报告问题+甲骨文

水晶报告显示错误 --> 数据库连接器错误:“无法从服务器获取错误消息”

C#windows窗体应用程序如何自适应大小