sheikh-k
11/17/2016 - 7:59 PM

NOTE: using .NET models to view data on the report (i am not using DataSet here)

NOTE: using .NET models to view data on the report (i am not using DataSet here)


public ActionResult ExportInvoice(int ID)
{
    ReportDocument rd = new ReportDocument();
    rd.Load(Path.Combine(Server.MapPath("~/Areas/Sales/Reports/rptSalesInvoice.rpt")));
    //rd.SetDataSource(rptInvoiceDetailList);

    var invoiceDetails = _salesInvoiceService.GetTempVoucherDetailsByTempVoucherID(ID);
    List<rptSalesInvoiceDetails> rptInvoiceDetailList = new List<rptSalesInvoiceDetails>();
    foreach (var aDetails in invoiceDetails)
    {
        rptSalesInvoiceDetails rptSalesInvoice = new rptSalesInvoiceDetails();
        rptSalesInvoice.ItemName = aDetails.ItemName;
        rptInvoiceDetailList.Add(rptSalesInvoice);
    }
    rd.Database.Tables[0].SetDataSource(rptInvoiceDetailList);

    var rptSalesInvoiceInfoList = new List<rptSalesInvoiceInfo>();
    var basicInfo = new rptSalesInvoiceInfo();
    basicInfo.TotalAmount = 500;
    rptSalesInvoiceInfoList.Add(basicInfo);
    rd.Database.Tables[1].SetDataSource(rptSalesInvoiceInfoList);
    //rd.ReportSource = rd;

    Response.Buffer = false;
    Response.ClearContent();
    Response.ClearHeaders();
    Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
    stream.Seek(0, SeekOrigin.Begin);
    return File(stream, "application/pdf", "SalesInvoicePDF-" + ID+".pdf");
}