public void GetReportMultipleDataSourceFile(List<ReportDataSource> reportDateSource, string TemplatePath, List<ReportParameter> parameterList, string FileType)
34 {
35 string reportFormat = FileType;
36 string outputfile = "Report."; //报表名称
37 ReportViewer rview = new ReportViewer();
38 rview.ProcessingMode = ProcessingMode.Local;
39 rview.LocalReport.ReportPath = Server.MapPath(TemplatePath);
40 rview.LocalReport.DataSources.Clear();
41 foreach (ReportDataSource re in reportDateSource)
42 {
43 rview.LocalReport.DataSources.Add(re);
44 }
45
46 if (parameterList.Count > 0)
47 rview.LocalReport.SetParameters(parameterList);
48 string mimeType, encoding, extension, deviceInfo;
49 string[] streamids;
50 Warning[] warnings;
51 deviceInfo = "<DeviceInfo>" + "<SimplePageHeaders>True</SimplePageHeaders>" + "</DeviceInfo>";
52
53 byte[] bytes = rview.LocalReport.Render(reportFormat, deviceInfo, out mimeType, out encoding, out extension, out streamids, out warnings);
54
55 //这里可以输入产生报表的时候有哪些警告信息
56 //if (warnings != null && warnings.Length > 0)
57 //{
58 // LoggingManager log = LoggingManager.GetLoggingManager();
59 // foreach (Warning w in warnings)
60 // {
61 // log.Info(w.Message);
62 // }
63 //}
64 HttpContext.Current.Response.Buffer = true;
65 HttpContext.Current.Response.Clear();
66 HttpContext.Current.Response.ContentType = mimeType;
67 HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + outputfile + extension + ";");
68 HttpContext.Current.Response.BinaryWrite(bytes);
69 HttpContext.Current.Response.End();
70 }
GetReportMultipleDataSourceFile(reportDataSource, templatePath, parameterList, "pdf");