2015-05-22 2 views
0

У меня есть небольшой опыт на самом деле. Можно ли напрямую экспортировать его в PDF из кода, находящегося за файлом, без предварительного просмотра отчета и без необходимости нажатия кнопки экспорта? Я использую обработку локального отчета. Спасибо!RDLC экспорт непосредственно в PDF-код позади?

+1

Это возможно, хотя это зависит от того, насколько динамично вы хотите, чтобы ваша установка была. – Enzero

ответ

1

Попробуйте это.

protected void showReport(string fileName) 
    { 
     Warning[] warnings; 
     string[] streamIds; 
     string mimeType = string.Empty; 
     string encoding = string.Empty; 
     string extension = string.Empty; 
     DataTable DataTable1 = new DataTable 
     report.LocalReport.Refresh(); 
     report.Reset(); 
     report.LocalReport.EnableExternalImages = true; 
     this.report.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Local; 
     ReportDataSource rds2 = new ReportDataSource("DataSet1", DataTable1); 
     report.LocalReport.DataSources.Add(rds2); 
     report.LocalReport.ReportPath = "YourReport.rdlc"; 
     ReportParameter rptParam = new ReportParameter("your_parameter");  
     report.LocalReport.SetParameters(rptParam); 
     byte[] bytes = report.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamIds, out warnings); 
     Response.Buffer = true; 
     Response.Clear(); 
     Response.ContentType = mimeType; 
     Response.AddHeader("content-disposition", "attachment; filename=" + fileName + "." + extension); 
     try 
     { 
      Response.BinaryWrite(bytes); 
     } 
     catch (Exception ex) 
     { 
      Page.ClientScript.RegisterStartupScript(this.GetType(), "ErrorAlert", "alert('Error while generating PDF.');", true); 
      Console.WriteLine(ex.StackTrace); 
     } 
     Response.Flush(); 
     report.LocalReport.Refresh(); 
    }