ASP.NET报表查看器

时间:2012-03-30 00:24:45

标签: c# asp.net reportviewer report-viewer2010 reportviewer2008

以下代码位于方法内部,它使用报表查看器呈现报表:

            objReportViewer.LocalReport.ReportPath = "TestReport.rdlc";

            objReportViewer.LocalReport.DataSources.Clear();

            objReportViewer.LocalReport.DisplayName = "TestReport_" +  DateTime.Now.ToString("yyyyMMdd");

            object objReportDataSource = TestReportDataSource(Id);

            objReportViewer.LocalReport.DataSources.Add(new ReportDataSource("TestReportDataSource", objReportDataSource));

            objReportViewer.ZoomMode = ZoomMode.PageWidth;


            ReportParameter[] arrReportParameters = new ReportParameter[3];

            // First Name
            arrReportParameters[0] = new ReportParameter("FirstName",person.FirstName);

            // LastName
            arrReportParameters[1] = new ReportParameter("LastName", person.LastName);

 //DOB
   arrReportParameters[2] = new ReportParameter("Age",person.DOB);


            objReportViewer.ShowParameterPrompts = false;
            objReportViewer.DocumentMapCollapsed = true;
            objReportViewer.ShowDocumentMapButton = false;


            objReportViewer.LocalReport.SetParameters(arrReportParameters);

   objReportViewer.LocalReport.ExecuteReportInSandboxAppDomain();

            objReportViewer.LocalReport.Refresh();

到目前为止,在尝试生成报告时没有任何问题,如果有大量信息,那么报告将有两个或更多页面。如果我想打印或导出到.pdf,我可以从渲染的报告中这样做。 我的问题是两个:

1-如何使报表查看器以编程方式导出为.pdf。

2-如何使报表查看器仅显示1页而忽略其余数据,或者如果以编程方式将其导出到.pdf,如何只导出第一页而忽略其余页面。

例如,如果报告通常会呈现2个页面,我希望它只呈现第一个页面。

是否可以使用报告查看器完成?

谢谢。

1 个答案:

答案 0 :(得分:1)

我不确定如何将pdf限制为一页。但是这是你如何导出到pdf:

 Microsoft.Reporting.WebForms.LocalReport oLocalReport = objReportViewer.LocalReport;


byte[] renderedBytes = null;
string reportType = "PDF";
string mimeType = "application/pdf";
string encoding = null;
Microsoft.Reporting.WebForms.Warning[] warnings = null;
string[] streams = null;
string deviceInfo = "<DeviceInfo><OutputFormat>PDF</OutputFormat><PageWidth>8.5in</PageWidth><PageHeight>11in</PageHeight></DeviceInfo>";


//Render the report
renderedBytes = oLocalReport.Render(reportType, deviceInfo, mimeType, encoding, "PDF", streams, warnings);

System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ContentType = mimeType;

System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + _reportName + ".PDF");
System.Web.HttpContext.Current.Response.BinaryWrite(renderedBytes);
System.Web.HttpContext.Current.Response.End();