【发布时间】: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文件夹中。 -
这为我解决了这个问题:stackoverflow.com/questions/49123366/…
标签: c# visual-studio crystal-reports