Skip to Content
Author's profile photo Ludek Uher

How do you spell confusion; CR for VS, Crystal 2011, BI 4.x and the .NET SDKs

Up to and including Crystal Reports 2008 (v. 12.x), things were relatively straight forward. Though a bit of a review / explanation taking us all the way back to CR 10.5 will serve us well as an introduction type of thing. After Crystal Reports 200 (CR 2008), things get confusing and in this blog I want to try and remove the confusion – and frustration…

So, CR 10.5 – better known as “Crystal Reports Basic for Visual Studio 2008” (not to be confused with Crystal Reports 2008(!)). This was a bundled version of CR that was included for free with Visual Studio 2008. It had both 32 bit and 64 bit runtime. Now, let’s skip to CR 2008 (c 12.x) as all that applies here, applies to CR XI (v. 11.x) and CR XI R2 (v. 11.5). The install of these versions of CR included the SDK for VS .NET. 32 bit only(!). However, perhaps to make up for the lack of 64 bit runtime, in addition to the Crystal Reports SDK for VS, you also got the InProc RAS SDK, which is way more functional and includes Report Creation APIs.

OK. We’re up to CR 2008 (v. 12.x). What should the next version be? Well, version 13.x sounds just about right. And “Crystal Reports for Visual Studio 2010” (CRVS2010) is born. Note that this version, follows in the footsteps of CR 10.5; it only works in the VS 2010 IDE. E.g.; it is not a stand alone executable like CR XI R2 or CR 2008. CRVS 2010 has both 32 bit and 64 bit runtime. And it has the Crystal Reports SDK for .NET as well as the InProc RAS SDK. And it’s FREE(!). All good.

What will the next version of CR be? How about SAP Crystal Reports 2011. What should the file versions be? Version 14.x sounds good and logical. One gotcha though; NO SDK. None. Not for VS, not for Java. Now, at this point this is not particularly bad as reports created in CR 2011 will work just fine with version 13.x runtime.

Right. Now let’s release BI 4.x (an upgrade to Business Objects Enterprise 3.x). File version is 14.x for this product. And, it has a .NET SDK – version 14.x. All good, except for at least two gotachas:

  1. BI 4.x SDKs cannot be used for unmanaged applications. E.g.; reports must be run via managed applications only
  2. You cannot mix version 13 and version 14 files. E.g.; do not add CrystalDecision.CrystalReports.Engine assembly of version 13 and BusinessObjects.Enterprise.* of version 14 in the same app

More on point (2) below ( Mixing versions – NO, NO, NO, NO, NO ). Now, just to confuse things a bit more, what do we call CR that can work with Visual Studio 2012? How about “SAP Crystal Reports, developer version for Microsoft Visual Studio”. And let’s give it version 13.6.x. Oh and yes, it does work with VS 2010 also.

Wonder about Crystal Reports for VS 2014? Me too :).

Mixing versions – NO, NO, NO, NO, NO

In the days of CR 2008 and BO 3.x, all files were versioned as 12.x. Thus you could do something like the following:

ReportDocument.Load(myInfoObject, myEnterpriseSession)

The above is an overload that uses RAS to bridge to BOE.  It will  use the RAS server in the back-end. However, since ReportDocument is defined in the CR SDK and InfoObject / Enterprisesession is defined in the BO / BI SDK, when you move to BI 4.x, you cannot use the same code. E.g.; when migrating from BO 3.x to BI 4.x it is imperative to avoid this type of code. Remember, the 4.x runtime is only supported for fully managed scenarios and the reportdocument SDK is only supported in the 13.x runtime(!).  Therefore, the .Load overload and any BOE dependencies were removed from the 13.x runtime.

Just as word to a simple solution to those running into an app that uses the above; The application already has the infoObject, so most of the work is done.  To set parameters /logons to the reportdocument object, use CrystalDessions.Enterprise.Desktop.Report object(cast the InfoObject to a Report object and use PSReportFactory for the reportsource)  or ReportClientDocument  object (create ReportAppFactory from enterprisesession and create ReportClientDocument from ReportAppFactory.Opendocument (InfoObject.ID)).

Well, that is it. Still confused? Below is a handy dandy matrix that may help.

Product name File Version* CR SDK for .NET 32 bit 64 bit InProc RAS SDK
Crystal Reports Basic for Visual Studio 2008 10.5 YES YES YES NO
Cystal Reports 2008 12.x YES YES NO YES
Crystal reports For Visual Studio 2010^ 13.x YES YES YES YES
SAP Crystal Reports 2011 14.0.x NO YES NO NO
BI 4.x** 14.x YES** YES YES NO

SAP Crystal Reports, developer version for

Microsoft Visual Studio^^

13.x YES YES YES YES
SAP Crystal Reports 2013 14.1.x NO YES NO NO

*Remember, that a File version is not the same as Assembly version

^ Crystal Reports for Visual Studio 2010 versions; 13.0, 13.1, 13.2, 13.3, 13.4, 13.5

^^ Future versions for SAP Crystal Reports, developer version for Microsoft Visual Studio version 13.6 + 0.1. E.g.; 13.7, 13.8, etc.

** Managed only

Still more questions? Don’t’ forget to search for answers using the search box at the top right corner of this web page. Or, start a Discussion in this Space.

Assigned Tags

      19 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Ludek,

      We have an existing C++ application developed in VS 2008, using CrystalReportViewer 11.5 ActiveX control. The wrapper class was generated from CRViewer.dll, the version is 11.5.9..

      Porting the code to VS 2012 didn't work. The control is found, DLL gets loaded, by fails to show up, failing inside DoVerb.

      We've installed the latest SDK for VS 2012. This didn't fix anything.

      What is a recommended way to upgrade? Preferably keeping the existing C++ code intact.

      Much appreciated

      Michael

      Author's profile photo Ludek Uher
      Ludek Uher
      Blog Post Author

      The Report Design Component (crtaxdrt.dll) was retired in CR 11.5 (XI R2). Your only option is to update your app to use the CR assemblies for .NET. If you have more questions, please create a Discussion.

      - Ludek

      Author's profile photo Former Member
      Former Member

      Is there a way to work in Visual Studio 2008 with 13.x file version? (Crystal Reports Basic for Visual Studio 2008 have reported and unsolved bugs on rounding fields with formulas)

      Author's profile photo Ludek Uher
      Ludek Uher
      Blog Post Author

      No, there is not. Any further questions, please create a Discussion.

      - Ludek

      Author's profile photo Bhushan Hyalij
      Bhushan Hyalij

      Crystal Clear Information 🙂 . Thanks Ludek.

      Author's profile photo Former Member
      Former Member

      Using Crystal Reports for Visual Studio 2010 SP9 and RAS in unmanaged out-proc mode, which Crystal Reports Server versions are then supported (2008,2011,2013)?

      Author's profile photo Dell Stinnett-Christy
      Dell Stinnett-Christy

      If you have Crystal Reports Server (CRS), you'll need to use the version of the SDK that is installed with the Client Tools - Crystal for VS will NOT connect to CRS.  If you're working in VS 2010, the SDKs for either CRS 2011 or 2013 will work.  If you have CRS 2008, you'll need to use VS 2008 - the CRS 2008 SDK may work in VS 2010 (my initial testing showed that at least the parts I was testing did) however it's not supported by SAP.

      -Dell

      Author's profile photo Former Member
      Former Member

      Thank you Dell,

      I also found out that installing

      SBOP BI PLATFORM 4.0 ENTER .NET SDK RUNTIME WIN

      works fine. I will try the the same using 4.1.

      -Fredrik

      Author's profile photo hu po
      hu po

      Thanks

      Author's profile photo Jonathan Mason
      Jonathan Mason

      Ludek,

      I hope you don't mind me adding another comment to this blog post rather than creating a new discussion, but I thought it would be the best place, as it relates to the blog post.

      I'm slightly confused about the difference between SDK and runtime; is there a difference?

      In my mind I think of 1) the main Crystal Reports program, 2) the Crystal Reports API libraries that allow me to programmatically run a report from our program (Matrix Gemini) and 3) the runtime, which includes the Crystal Reports API libraries to allow our customers to run a report from our program (Matrix Gemini) without having to install the main Crystal Reports program.

      Is the answer that the runtime is part of the SDK?

      I suppose the question I'm ultimately trying to answer is: when you say SAP Crystal Reports 2013 has no SDK, do you mean it has no runtime too?

      Thanks

      Jonathan Mason

      Author's profile photo Ludek Uher
      Ludek Uher
      Blog Post Author

      Hi Jonathan

      SDK being Solution Developer Kit essentially means that you have to have the runtime in order to use the SDK on the dev computer. You could just run the MSI on the dev computer - not recommended - as the CR designer will not be integrated into VS and you may also run into issue referencing the assemblies. E.g.; on dev use the install exe. As for "Crystal Reports program". You are probably referring to the report designer. There are two "flavors" - stand alone exe (crw32.exe) and the designer integrated into VS - run by craxddrt.dll.

      - Ludek

      Author's profile photo Jonathan Mason
      Jonathan Mason

      Ludek,

      Just to clarify what I meant and I think your answer is, this is what I meant:

      For Crystal Reports 2008 we got the SDK (Crystal Reports API libraries) onto the dev (development?) computer by simply installing the crw32.exe report designer (main Crystal Reports program). We then did our development/programming with Visual Studio 2008 and the Crystal Reports 2008 SDK. After development/programming we would then deploy our program (Matrix Gemini) to our customers with the Crystal Reports 2008 runtime, CRRuntime_12_4_mlb.msi.

      And I think you're saying:

      For SAP Crystal Reports, developer version for Microsoft Visual Studio, to get the SDK onto our developer computer, we could run the msi, e.g. CRRuntime_32bit_13_0_10, but it would be better to run the install exe, e.g. CRforVS_13_0_10.exe, so that the SDK is integrated with Visual Studio.

      So I think the answer to my original questions are:

      1) The runtime essentially installs the SDK onto the deployment computer minus the Visual Studio integration.

      2) As SAP Crystal Reports 2013 has no SDK it also has no runtime.

      Thanks for your reply.

      Jon

      Author's profile photo Frank Alvaro
      Frank Alvaro

      Understand that this may seem like a “dead horse” ? but…

      Per point #2 from @jonathan.mason, there is no runtime (redist, especially) for Crystal Reports 2013 (IOW 14.1.x), so do not create applications/components built against SAP BusinessObjects BI platform .NET SDK Redistributable 32bit 4.1 unless you plan on packaging up the entire SDK as the “runtime” when you deploy it.  <- is that an accurate statement?

       

      Author's profile photo Former Member
      Former Member

      Hi Ludek,

      Can you please help me with upgrading crystal reports to version 14 from cr 12.

      support for cr 12 is going to end in 2015 ,therefore we are planning to upgrade to cr 14.

      I can create rpts in cr 14 , there is no problem in that.

      But I dont have any idea about integration of crystal reports with other applications .

      I mean CR 12 is integrated with our c++ application, now if I upgrade to CR 14 what all changes do I need to do.

      Also I read that SDK 2008 compatible with CR14 rpt's , are they going to end the support for sdk 2008 also .

      Author's profile photo Dell Stinnett-Christy
      Dell Stinnett-Christy

      Actually, the version for the .NET SDK assemblies is 13.x.  You'll download it from here: http://scn.sap.com/docs/DOC-7824.

      Download and install the latest version of the "Install Executable" to get integration into Visual Studio 2010 or newer - the other downloads are various forms of runtime installs that can be used for different deployment types.

      Note that the latest SDK does not play well in Visual Studio when it is installed side-by-side with an older version of the SDK.  So, you'll need to either uninstall the old SDK or, if you still need to maintain code that uses the older version, do your new (or old) development on a VM that contains just one version of the SDK and the appropriate version of VS for that SDK.

      -Dell

      Author's profile photo Former Member
      Former Member

      Hello,

      I am creating .NET windows forms based application in Visual Studio 2010 to launch simple RPT in Crystal Report 2013.

      I am using following approaches:

      1) leverage ReportDocument and CrystalReportViewer class instance to launch report

      2) dynamically create report viewer control and use it to view report.

      So far not able to achieve the goal as necessary dlls are not found.

      Also, I couldn't find any samples on Crystal 2013 with Visual studio.

      Request you to kindly advise the same.

      Thanks.

      Author's profile photo Ludek Uher
      Ludek Uher
      Blog Post Author

      Hi Ele

      Please note my last sentence in this blog:

      Still more questions? Don’t' forget to search for answers using the search box at the top right corner of this web page. Or, start a Discussion in this Space.

      E.g.;. do start a Discussion.

      Thank you for your understanding,

      - Ludek

      Author's profile photo Former Member
      Former Member

      I am running an application written in C# in VS 2013.  I am trying to reference the DLL's CrystalDecisions.Enterprise.Framework and CrystalDecisions.Enterprise.InfoStore. They are 64 bit DLL's, the file version is 12.0.0.0.  My machine is running Windows 7, 64 bit.  When I reference these DLL's in my application and run it in VS IDE, I get the following error:

      Could not load file or assembly 'BusinessObjects.Enterprise.Sdk' or one of its dependencies. An attempt was made to load a program with an incorrect format.


      Does anyone have any tips as to how to correctly reference these DLL's in a .NET application?

      I am trying to run code that looks as follows to get a serialized session:

                  SessionMgr session_mgr = new SessionMgr();

                  EnterpriseSession session = session_mgr.Logon(userName, password, server, auth);

                  string session_str = session.SerializedSession;

                  string SessionURL = HttpUtility.UrlEncode(session_str);


      Author's profile photo Dell Stinnett-Christy
      Dell Stinnett-Christy

      Please re-post this question here:  .NET SDK Application Development

      -Dell.