Skip to Content
Author's profile photo Saurabh Pathak

Crystal Reports .NET Applications and Object Models used

I have been working on Crystal Reports .NET application but never knew the Object Model used by me for programming. The object models in the SDK not only expose the report objects but also manipulate them.  Learning about object models has helped me understand the significance of models. With this blog I would like to brief about the object models available with SDK.

CrystalReportViewer or ReportDocument are the two objects models which are normally being used for developing the application using Crystal Reports .NET SDK, with additional licensing, the SDK expands to contain four object models. With each object models complexity & its power to carry out the operations increases. Let us understand them one by one:

  • CrystalReportViewer:
  1. The simplest object model in the league.
  2. CrystalReportViewer class provides properties, methods, and events that modify or retrieve information about how the CrystalReportViewer control appears and functions.
  3. This class exists in two different forms: one in a Windows namespace and one in a Web namespace. Therefore, many elements of this object model are duplicated in both namespaces, with some variations to support the differences in the Windows (CrystalDecisions.Windows.Forms namespace) and Web (CrystalDecisions.Web namespace) platforms.

  • ReportDocument:  
  1. A more extensive object model than CrystalReportViewer
  2. ReportDocument class represents a report and contains properties and methods to define, format, load, export, and print the report.
  3. It is a part of the CrystalDecisions.CrystalReports.Engine namespace
  4. It can also be called as a gateway to classes present in Engine namespaces.

  • ReportClientDocument:  
  1. This is the most powerful object model for manipulating reports.
  2. Programmatically one can create, modify, and save changes to every aspect of the report at runtime.    
  3. It is made up of many classes across several namespaces. Each namespace is prefixed with CrystalDecisions.ReportAppServer.     
  4. This object model is available as a part of Report Application Server (RAS) ,which requires additional licensing is required, which is available either as an unmanaged Report Application Server (RAS), or as a managed Report Application Server (BOE).
  5. The ReportClientDocument object model is available with Crystal Reports 2008 & Crystal Reports for Visual Studio 2010, but allows us to access limited version of the same through ReportDocument.ReportClientDocument property.
  6. Note: A Report Application Server is available with Crystal Reports Server and BusinessObjects Enterprise.

  • InfoObject:
  1. This model has been designed for interacting with the enterprise level functions of Crystal Reports Server or BusinessObjects Enterprise.
  2. InfoObject class functions as a gateway to the full Enterprise object model of Crystal Reports Server or BusinessObjects Enterprise as it represent a wide variety of information entities report files or PDF files which are called as physical entities, and users, servers, or FTP connections also known as network entities.
  3. It is part of CrystalDecisions.Enterprise group of namespaces.
  4. Note: It is provided with the Crystal Reports Server or BusinessObjects Enterprise license.

Additional Resources:

Assigned Tags

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

      Great Article!

      Is there a way to get the table type property in .NET (C#), this is under the Database || Set DataSource Location || Under each table Name there is a property list I need the Table Type Name (i.e Stored Procedure, Views,etc).


      Author's profile photo Saurabh Pathak
      Saurabh Pathak
      Blog Post Author

      Ideally you should post your questions here.

      Anyways please check following if it helps:

      How to find the properties of the Database and the Table used in the Crystal Reports using inProc RAS .NET SDK?