Friday, February 22, 2008

Generate pdf through ASP.NET

Hi,

I will be generating pdf reports through ASP.NET2.0 and Crystal Report 10.0, add this code in your page load....

protected void Page_Load(object sender, EventArgs e)
{
rptDoc.Load(Server.MapPath("~/Reports/FeedbackReport_AdminMsngRpt.rpt"));

// Make your connection string rptDoc.SetDatabaseLogon(ConfigurationManager.AppSettings["DBLogin"].ToString(), ConfigurationManager.AppSettings["DBPassword"].ToString(), ConfigurationManager.AppSettings["DBServer"].ToString(), ConfigurationManager.AppSettings["DBase"].ToString());

con.ReportConnection(rptDoc, cnInfo, crDb, crTables);
ParameterDiscreteValue paraDiscVal = new ParameterDiscreteValue();

ParameterValues paraRpt = new ParameterValues();

foreach (ParameterFieldDefinition paraDefTemp in rptDoc.DataDefinition.ParameterFields)
{
switch (paraDefTemp.Name)
{
case "ReportNumber":
paraDiscVal.Value = Request.QueryString["RptNo"].ToString();
paraRpt.Add(paraDiscVal);
paraDefTemp.ApplyCurrentValues(paraRpt);
break;
case "@reportnumber":
paraDiscVal.Value = Request.QueryString["RptNo"].ToString();

paraRpt.Add(paraDiscVal);
paraDefTemp.ApplyCurrentValues(paraRpt);

break;
default:
paraDiscVal.Value = null;
paraRpt.Add(paraDiscVal);
paraDefTemp.ApplyCurrentValues(paraRpt);
break;
}
}
//rptDoc.RecordSelectionFormula = " {RH_Report.ReportNumber}=" + Request.QueryString["RptNo"].ToString();
ExportOptions crExportOptions;
DiskFileDestinationOptions crDiskFileDestinationOptions = new DiskFileDestinationOptions(); ;
string Fname;

//Export the Report To Pdf format.

//Uncomment below line for Criteria Non Compliance Report
//Fname = Server.MapPath("ReportOutputs/") + Session["lstReports"].ToString().Replace("/", "_").Replace(" ", "_").Replace("-", "_") + "_" + DateTime.Now.Date.ToShortDateString().Replace("/", "_") + "_" + DateTime.Now.ToShortTimeString().Replace(":", "_") + ".pdf";

//Comment this line when u will uncomment above line.
Fname = Server.MapPath("ReportOutputs/") + Request.QueryString["RptNo"].ToString() + ".pdf";
Session["Fname"] = Fname;
crDiskFileDestinationOptions = new DiskFileDestinationOptions();
crDiskFileDestinationOptions.DiskFileName = Fname;
crExportOptions = rptDoc.ExportOptions;
{
crDiskFileDestinationOptions.DiskFileName = Server.MapPath("ReportOutputs/") + Request.QueryString["RptNo"].ToString() + ".pdf";
crExportOptions.DestinationOptions = crDiskFileDestinationOptions;
crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
crExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;

}


rptDoc.Export();
Session.Add("report", rptDoc);
CrystalReportViewer1.ReportSource = (ReportDocument)Session["report"];

//Code to export report in pdf
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.WriteFile(Fname);
Response.Flush();
Response.Close();
//delete the exported file from disk
System.IO.File.Delete(Fname);
}

No comments: