C# Crystal Reports from XML

Typically, Crystal Reports are generated based on data extracted from databases. However, in the subsequent section, we will investigate into the process of creating Crystal Reports from XML files in C#. This method closely resembles creating Crystal Reports from a database, with the sole distinction being the selection of the XML file as the data source during the design phase of the Crystal Report in C#.

All C# Crystal Reports Tutorial in this website is based on the following database - crystaldb. So before you begin this section , please take a look at the database structure of crystaldb - Click Here C# crystaldb

If you are new to Crystal Reports and do not know how to create Crystal Reports from C# , please take a look at the section step by step tutorial for creating a Crystal Reports from C#.

In order to generating Crystal Report from XML file , we have to create an XML file . Here we are going to create an XML file and name it as Product.XML . The structure of the Product.XML file is same as the Product table in the crystaldb database earlier mentioned in this section C# crystaldb . The content of the product.xml is shown below.

csharp-crystal-report-product-xml

Download Product.XML

Generating a Crystal Report from an XML file closely resembles the process of generating a Crystal Report from databases. The primary difference lies in the selection of the data source. In this case, when creating the report, you need to choose the option "Create New Connection - Database Files" and select the specific XML file from which you wish to generate the Crystal Reports. For instance, in this scenario, you would select the "Product.xml" file as the data source for generating the Crystal Reports.

csharp-crystal-report-xml-select

Select all the fields from Product and click finish button

Now the designing part is over and the next step is to call the Crystal Reports in C# and view it in Crystal Reports Viewer control .

Select the default form (Form1.cs) you created in C# and drag a button and a CrystalReportViewer control to your form .

You have to include CrystalDecisions.CrystalReports.Engine in your C# Source Code.

using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Shared;

Copy and paste the following source code and run your C# project.

Full Source C#
using System; using System.Windows.Forms; using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Shared; namespace WindowsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { ReportDocument cryRpt = new ReportDocument(); cryRpt.Load(PUT CRYSTAL REPORT PATH HERE\\CrystalReport1.rpt"); crystalReportViewer1.ReportSource = cryRpt; crystalReportViewer1.Refresh(); } } }

NOTES:

cryRpt.Load(PUT CRYSTAL REPORT PATH HERE\\CrystalReport1.rpt");

The Crystal Reports file path in your C# project files location, there you can see CrystalReport1.rpt . So give the full path name of Crystal Reports file like c:\projects\crystalreports\CrystalReport1.rpt