HTML clipboardReferrences:
Add the below references from .Net tab (Projects -> Add Reference..)
CrystalDecisions.CrystalReports.Engine
CrystalDecisions.Shared
Namespaces:
using
CrystalDecisions.CrystalReports.Engine;
using
CrystalDecisions.Shared;
using
System.Data.SqlClient;
Global Variable declaration:
ReportDocument
rpt = new
ReportDocument();
Display the report through CrystalViewer in Form_Load() event:
private
void Form1_Load(object
sender, EventArgs e)
{
rpt.Load(@"D:\Muthu\Tech\Blogs\CrystalReportsApp\CrystalReportsApp\ChartReport.rpt");
crystalReportViewer1.ReportSource = rpt;
crystalReportViewer1.Refresh();
}
Bind the Crystal report dynamically and Update the crystal report label value
dynamically:
private
void btnRefresh_Click(object
sender, EventArgs e)
{
//Begin: Bind the reports dynamically
DataTable dtReports = BindReports();
rpt.SetDataSource(dtReports);
//End: Bind the reports dynamically
//Begin: Update the report label value
from All to the entered employee name in the text box
TextObject myTextObjectOnReport;
if (rpt.ReportDefinition.ReportObjects["txtEmpName"]
!= null)
{
myTextObjectOnReport = (TextObject)rpt.ReportDefinition.ReportObjects["txtEmpName"];
myTextObjectOnReport.Text = txtName.Text;
}
crystalReportViewer1.ReportSource = rpt;
crystalReportViewer1.Refresh();
//End
}
//Filtered the report details based on the employee name entered in the textbox
private DataTable BindReports()
{
string conString =
@"Data Source=WVDI1IHCL32\WVDI1IHCL32;Initial
Catalog=Test;Integrated Security=True;";
SqlConnection con = new
SqlConnection(conString);
con.Open();
string query =
"SELECT EmployeeID, DepID, Name, Mark FROM Employee
E WHERE E.Name='" + txtName.Text + "'";
SqlDataAdapter sqlAdapter = new
SqlDataAdapter(query, con);
DataTable dtReport = new DataTable();
sqlAdapter.Fill(dtReport);
con.Close();
return dtReport;
}
Generate the Crystal report as a PDF, Word or Excel:
When we use the CrystalReportViewer to display reports, we have a provision to
export the report as PDF or any other format using the below icon.
![CR1.gif]()
If we want to generate the report without the viewer control, that time we can
use the below code. (Automation of report generation using windows service or
console app)
private
void btnExport_Click(object
sender, EventArgs e)
{
ExportOptions rptExportOption;
DiskFileDestinationOptions
rptFileDestOption = new
DiskFileDestinationOptions();
PdfRtfWordFormatOptions
rptFormatOption = new
PdfRtfWordFormatOptions();
//If we want to generate the report as pdf,
change the file extention type as "D:\Muthu\SampleReport.pdf"
//If we want to generate the report as
excel, change the file extention type as "D:\Muthu\SampleReport.xls"
string reportFileName =
@"D:\Muthu\SampleReport.doc";
rptFileDestOption.DiskFileName = reportFileName;
rptExportOption = rpt.ExportOptions;
{
rptExportOption.ExportDestinationType =
ExportDestinationType.DiskFile;
//if we want to generate the report as
PDF, change the ExportFormatType as "ExportFormatType.PortableDocFormat"
//if we want to generate the
report as Excel, change the ExportFormatType as "ExportFormatType.Excel"
rptExportOption.ExportFormatType =
ExportFormatType.RichText;
rptExportOption.ExportDestinationOptions = rptFileDestOption;
rptExportOption.ExportFormatOptions = rptFormatOption;
}
rpt.Export();
}
Report Design:
![CR2.gif]()
Output: (First time, report will looks like the below)
![CR3.gif]()
Enter employee name in the textbox and click "Refresh" button.
![CR4.gif]()
To generate the report as doc, click on "Export" button.