【问题标题】:ASP.NET report viewerASP.NET 报表查看器
【发布时间】:2012-03-30 00:24:45
【问题描述】:

以下代码位于一个方法中,它使用报表查看器来呈现报表:

            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- 如何让报表查看器仅显示一页而忽略其余数据,或者在以编程方式将其导出为 .pdf 的情况下,如何仅导出第一页而忽略其余数据。

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

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

谢谢。

【问题讨论】:

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


    【解决方案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();
    

    【讨论】:

      猜你喜欢
      • 2012-10-01
      • 2017-08-21
      • 1970-01-01
      • 2017-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多