Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I export Crystal Report in PDF, HTML and DOC formats using C# code in ASP.NET?

I have designed a Report in my ASP.NET web site now i need to provide options to export that report in PDF, HTML, and DOC formats, how do i achieve that?

crystal report has one button to do that but when ever i try to save that report its saved as .aspx format as i am viewing it in asp.net web page.

like image 257
love Computer science Avatar asked Jun 12 '11 07:06

love Computer science


2 Answers

try this:

  <asp:ImageButton Width="20px" Height="20px" ID="btnPdf" runat="server"
    OnClick="btnExport_Click" ImageUrl="~/Images/PDF.png" AlternateText="Export To PDF" CssClass="AddedButton" />
   <asp:ImageButton Width="20px" Height="20px" ID="btnXls" runat="server" 
    OnClick="btnExport_Click" ImageUrl="~/Images/XLS.png" AlternateText="Export To Excel" />   
   <asp:ImageButton Width="20px" Height="20px" ID="btnDoc" runat="server" 
    OnClick="btnExport_Click" ImageUrl="~/Images/DOC.png" AlternateText="Export To Word" />   

C# code:

protected void btnExport_Click(object sender, EventArgs e)
{
    // Stop buffering the response
    Response.Buffer = false;
    // Clear the response content and headers
    Response.ClearContent();
    Response.ClearHeaders();
    try
    {
        string senderID = ((ImageButton)sender).ID;
        if (senderID == "btnPdf")
            reportDocument.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, Page.Title);
        else if (senderID == "btnXls")
            reportDocument.ExportToHttpResponse(ExportFormatType.ExcelRecord, Response, true, Page.Title);
        else if (senderID == "btnDoc")
            reportDocument.ExportToHttpResponse(ExportFormatType.WordForWindows, Response, true, Page.Title);
        // There are other format options available such as Word, Excel, CVS, and HTML in the ExportFormatType Enum given by crystal reports
    }
    catch (Exception ex)
    {
       //error management

    }
}
like image 162
Emanuele Greco Avatar answered Nov 07 '22 13:11

Emanuele Greco


You have to do it by yourself: create a dropdown list with formats you want and a button to make a postback for exporting.

This is an example for the .Net 1.1 / CR9. When making a postback to the following:

  1. assign to your report class instance property value MyReport.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile;
  2. if you want to export to .pdf do the following: MyReport.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat; You can also choose WordForWindows, RichText, Excel, HTML40 and more.
  3. Then do the following:

    CrystalDecisions.Shared.DiskFileDestinationOptions fileOptions = new DiskFileDestinationOptions();

    fileOptions.DiskFileName = "someTmpFileName";

    MyReport.DestinationOptions = fileOptions;

    MyReport.Export();

You can find more about ExportOptions class here.

And here is an example for VS 2005 / .Net 2

like image 36
NetRat Avatar answered Nov 07 '22 13:11

NetRat