0

다음 코드는 방법 내부에 상주하며이 보고서를 렌더링하지 않으려면 보고서 뷰어를 사용하여 보고서를 생성 할 때 많은 정보가있는 경우, 지금까지 아무 문제ASP.NET 보고서 뷰어

  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

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(); 
+0

Dave에게 감사드립니다. 잘 돌아갔다. – Fayde