我遇到了大麻烦。 我是Windows窗体应用程序的新手。这是我在办公室的首次申请。 我的办公室管理人员给了我一个源代码。但他们对此一无所知。
我在visual studio 12(64位)上运行这些代码。一切都在运行,但水晶报告不起作用。引发错误。
错误是:
无法将“CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass”类型的COM对象强制转换为接口类型“CrystalDecisions.ReportAppServer.Controllers.ISCRReportSource”。此操作失败,因为对IID为“{98CDE168-C1BF-4179-BE4C-F2CFA7CB8398}”的接口的COM组件的QueryInterface调用由于以下错误而失败:不支持此类接口(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;
任何人都可以精心为我提供解决方案。 因为我不太了解视觉工作室。
提前致谢。
答案 0 :(得分:6)
现在也出现了同样的问题。
当我安装CR 13 Update 21时,我的项目在运行时给出了相同的异常。
我刚从Solution Explorer中删除了CrystalDecision的所有引用(实际上属于CR的先前版本,即CR 13 Update 20)。
然后我添加了来自Solution Explorer => References => Add Reference
菜单的新参考文献。我从窗口中选择了所需的CrystalDecision
包。重建,问题现在消失了。
答案 1 :(得分:2)
请在客户端计算机中安装较低运行时版本的Crystal报表。然后它会正常工作。就像目前你正在使用vs2012 cr运行时然后使用2008的运行时它将工作正常。
我有同样的问题,但现在我改为降低版本然后它对我来说很好。