private void Response(HttpResponse httpResponse, byte[] bytes, DomainUtility.ReportExportType reportExportType, string caption, string mimeType) { httpResponse.Buffer = true; httpResponse.Clear(); if (reportExportType == DomainUtility.ReportExportType.PDF) { httpResponse.AddHeader("content-disposition", "attachment; filename=" + caption + "." + "pdf"); httpResponse.ContentType = mimeType; } if (reportExportType == DomainUtility.ReportExportType.Excel) { httpResponse.AddHeader("content-disposition", "attachment; filename=" + caption + "." + "xls"); httpResponse.ContentType = mimeType; } httpResponse.BinaryWrite(bytes); // create the file httpResponse.Flush(); // send it to the client to download //httpResponse.End(); }
public void PrintRdlcDataGrid(HttpResponse httpResponse, DataGridHtml dataGridHtml, DomainUtility.ReportExportType reportExportType) { DataView dataView = dataGridHtml.MakeDataView(); //Report Viewer, Builder and Engine ReportViewer reportViewer = new ReportViewer(); reportViewer.Reset(); DataSet DS = new DataSet(); DS.Tables.Add(dataView.ToTable()); ReportBuilder reportBuilder = new ReportBuilder(); reportBuilder.DataSource = DS; reportBuilder.Page = new ReportPage(); reportBuilder.TableRows = dataView.Table.Rows.Count; string fontFamily = new ConfigurationService(base.UnitOfWork).GetValue(sysBpmsConfiguration.e_NameType.DefaultReportFontFamily.ToString()); if (!string.IsNullOrWhiteSpace(fontFamily)) { reportBuilder.FontFamily = fontFamily; } if (!string.IsNullOrWhiteSpace(dataGridHtml.ReportGridHeaderColor)) { reportBuilder.TableHeaderColor = "#" + dataGridHtml.ReportGridHeaderColor.ToStringObj(); } if (!string.IsNullOrWhiteSpace(dataGridHtml.ReportGridFooterColor)) { reportBuilder.TableFooterColor = "#" + dataGridHtml.ReportGridFooterColor.ToStringObj(); } if (!string.IsNullOrWhiteSpace(dataGridHtml.ReportGridEvenColor)) { reportBuilder.TableRowEvenColor = "#" + dataGridHtml.ReportGridEvenColor.ToStringObj(); } if (!string.IsNullOrWhiteSpace(dataGridHtml.ReportGridOddColor)) { reportBuilder.TableRowOddColor = "#" + dataGridHtml.ReportGridOddColor.ToStringObj(); } //report size switch (dataGridHtml.ReportPaperSize) { case "A2": reportBuilder.Page.PageSize = new ReportScale() { Width = 59.4, Height = 42 }; break; case "A3": reportBuilder.Page.PageSize = new ReportScale() { Width = 42, Height = 29.7 }; break; case "A4": reportBuilder.Page.PageSize = new ReportScale() { Width = 29.7, Height = 21 }; break; case "A5": reportBuilder.Page.PageSize = new ReportScale() { Width = 21, Height = 14.8 }; break; default: reportBuilder.Page.PageSize = new ReportScale() { Width = 29.7, Height = 21 }; break; } ReportSections reportFooter = new ReportSections(); ReportItems reportFooterItems = new ReportItems(); ReportTextBoxControl[] footerTxt = new ReportTextBoxControl[3]; string footer = string.IsNullOrWhiteSpace(dataGridHtml.ReportFooter) ? $" page {ReportGlobalParameters.CurrentPageNumber} of {ReportGlobalParameters.TotalPages}" : dataGridHtml.ReportFooter; footerTxt[0] = new ReportTextBoxControl() { Name = "txtCopyright", ValueOrExpression = new string[] { footer } }; reportFooterItems.TextBoxControls = footerTxt; reportFooter.ReportControlItems = reportFooterItems; reportBuilder.Page.ReportFooter = reportFooter; ReportSections reportHeader = new ReportSections(); reportHeader.Size = new ReportScale(); reportHeader.Size.Height = 0.56849; ReportItems reportHeaderItems = new ReportItems(); List <ReportTextBoxControl> headerTxt = new List <ReportTextBoxControl>() { }; headerTxt.Add(new ReportTextBoxControl() { Name = "txtReportTitle", Size = new ReportScale() { Height = 0.6, Width = 5, Left = (reportBuilder.Page.PageSize.Width - 5) / 2, Top = 0.5 }, ValueOrExpression = new string[] { dataGridHtml.Label } }); if (dataGridHtml.ReportShowDate) { headerTxt.Add(new ReportTextBoxControl() { Name = "txtReportDateTitle", Size = new ReportScale() { Height = 0.6, Width = 2, Left = 0.5, Top = 1 }, ValueOrExpression = new string[] { DateTime.Now.ToString("yyyy/MM/dd") } }); } reportHeaderItems.TextBoxControls = headerTxt.ToArray(); reportHeader.ReportControlItems = reportHeaderItems; reportBuilder.Page.ReportHeader = reportHeader; reportViewer.LocalReport.LoadReportDefinition(ReportBuilderEngine.GenerateReport(reportBuilder)); dataView.Table.Columns.Cast <DataColumn>().ToList().ForEach(c => c.ColumnName = c.ColumnName.Replace(" ", "_")); reportViewer.LocalReport.DataSources.Add( new ReportDataSource(dataView.Table.TableName, dataView.Table)); reportViewer.LocalReport.DisplayName = "WastageReport"; Warning[] warnings; string[] streamids; string mimeType; string encoding; string filenameExtension; byte[] bytes = reportViewer.LocalReport.Render(reportExportType.ToString(), null, out mimeType, out encoding, out filenameExtension, out streamids, out warnings); string caption = string.IsNullOrWhiteSpace(dataGridHtml.Label) ? new DynamicFormService(base.UnitOfWork).GetInfo(dataGridHtml.DynamicFormID).Name : dataGridHtml.Label; this.Response(httpResponse, bytes, reportExportType, caption, mimeType); }