public byte[] ObtenerReporteEgreso(Comprobante comprobante, out string mimeType) { mimeType = string.Empty; LocalReport localReport = new LocalReport(); string path = Path.Combine(Server.MapPath("~/Reports"), "ComprobanteEgreso.rdlc"); if (System.IO.File.Exists(path)) { localReport.ReportPath = path; } else { throw new ApplicationException("La ruta al reporte no existe, favor verificar."); } var cuentaAsiento = comprobante.CuentasAsientos.First(); var cuentaBanco = comprobante.CuentaBanco; var banco = comprobante.CuentaBanco != null ? comprobante.CuentaBanco.Banco : null; var tipoComprobante = comprobante.TiposComprobante; var reportesComprobante = reportesManager.GetReporteComprobante(comprobante.Id); var dataSourceComprobantes = new List <Comprobante> { comprobante }; var dataSourceTiposComprobantes = new List <TiposComprobante> { tipoComprobante }; var dataSourceCuentasAsientos = new List <CuentaAsiento> { cuentaAsiento }; var dataSourceBancos = new List <Banco> { banco }; var dataSourceCuentasBancos = new List <CuentaBanco> { cuentaBanco }; ReportDataSource rdsComprobantes = new ReportDataSource("Comprobante", dataSourceComprobantes); localReport.DataSources.Add(rdsComprobantes); ReportDataSource rdsTiposComprobantes = new ReportDataSource("TipoComprobante", dataSourceTiposComprobantes); localReport.DataSources.Add(rdsTiposComprobantes); ReportDataSource rdsCuentasAsientos = new ReportDataSource("CuentasAsientos", dataSourceCuentasAsientos); localReport.DataSources.Add(rdsCuentasAsientos); ReportDataSource rdsBancos = new ReportDataSource("Banco", dataSourceBancos); localReport.DataSources.Add(rdsBancos); ReportDataSource rdsDetalleComprobante = new ReportDataSource("Datos", reportesComprobante); localReport.DataSources.Add(rdsDetalleComprobante); ReportDataSource rdsCuentasBancos = new ReportDataSource("CuentasBancos", dataSourceCuentasBancos); localReport.DataSources.Add(rdsCuentasBancos); string reportType = "PDF"; string encoding; string fileNameExtension; string deviceInfo = "<DeviceInfo>" + " <OutputFormat>" + reportType + "</OutputFormat>" + " <PageWidth>21,59in</PageWidth>" + " <PageHeight>27,94in</PageHeight>" + " <MarginTop>0,5in</MarginTop>" + " <MarginLeft>0,5in</MarginLeft>" + " <MarginRight>0,5in</MarginRight>" + " <MarginBottom>0,5in</MarginBottom>" + "</DeviceInfo>"; Warning[] warnings; string[] streams; byte[] renderedBytes; renderedBytes = localReport.Render( reportType, deviceInfo, out mimeType, out encoding, out fileNameExtension, out streams, out warnings); return(renderedBytes); }