Skip to Content
Feb 10, 2015 at 04:52 PM

A document processed by the JRC engine cannot be opened in the C++



I'm currently building a .Net application (and NOT an IIS app, it's a standalone WPF application) to view report from Crystal Server 2013.

I successfuly manage to make my app work with Report of type "Crystal Report 2013" but when i try to view a "Crystal Report for Entreprise", i get this "little and non informative" error message :

"A document processed by the JRC engine cannot be opened in the C++"

when i call the CrystalDecisions.ReportAppServer.ClientDoc.ISReportAppFactory.OpenDocument(Object DocID, Int32 Options) with a correct and existing report id.

I've seen in this page : From Crystal Reports 2008 to SAP Crystal Reports 2013 or SAP Crystal Reports for Enterprise - Business Intelligence (Bus…

that "There is no Java or .NET SDK to create standalone 2 tier applications or to create applications that create or modify SAP Crystal Reports for Enterprise, however applications can be created with the SAP BusinessObjects BI 4.x SDK to use the platform servers to manage, schedule and view reports for both SAP Crystal Reports 2013 and SAP Crystal Reports for Enterprise."

But i undertand that i can make a .Net application to only view SAP Crystal Reports for Enterprise !!!

Is that rights ?

Here's my working code :

ISSessionMgr Manager = new SessionMgr();
ISEnterpriseSession m_Session = Manager.Logon( CMS_Login, CMS_Password, CMS_Host, CMS_Security );
ReportAppFactory m_ReportAppFactory = ( ReportAppFactory )Session.GetService( SERVICE_HOST, SERVICE_REPORT_FACTORY ).Interface;

InfoStore infoStore = new InfoStore(m_Session.GetService( SERVICE_HOST, SERVICE_INFOSTORE ));
InfoObjects reports = infoStore.Query(String.Format(INFOSTORE_QUERY_BY_ID, Report_ID));
InfoObject report = reports[FIRST_ITEM];

ReportAppFactory factory = ( ReportAppFactory )m_Session.GetService( "", "RASReportFactory" ).Interface;
ReportClientDocument clientDoc = new ReportClientDocumentClass();
clientDoc = factory.OpenDocument(report.ID, 0);

After that the clientDoc is given to another class that extract all the parameters send them to another services (that know how to fill the parameters with values) and push back into the report.

CrystalReportsViewer control = target as CrystalReportsViewer;
if ( control != null ) {
      control.ViewerCore.ReportSource = e.NewValue;

Everything is working fine with this method and it work with local file (with another method to retrieve the report) and "Crystal Report 2013" publish in a "Crystal Server 2013"...

Is there a way to make it work with Entreprise version ???

(The strange thing is that i'm pretty sure that this method worked with Crystal Server 2012 and another sdk) but it was one year ago (when i was doing some test) and i dont remember where i found them but the methodolgy was the same)

Thanks to everyone who clould help


from msdn : it seems possible, or am i wrong ?

Message was edited by: José De Almeida

Message was edited by: José De Almeida

Message was edited by: José De Almeida