0

Der folgende Code befindet sich innerhalb eines Verfahrens und verwendet es den Report Viewer Berichte zu machen:ASP.NET Report Viewer

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

keine Probleme Bisher wenn man versucht, die Berichte zu generieren, wenn es eine Menge von Informationen dann wird der Bericht zwei oder mehr Seiten haben. Wenn ich in .pdf drucken oder exportieren möchte, kann ich das aus dem gerenderten Bericht machen. Meine Fragen sind zwei:

1- Wie kann ich den Bericht Viewer exportieren zu. Pdf programmgesteuert.

2- Wie kann ich den Berichts-Viewer anzeigen nur 1 Seite, die den Rest der Daten ignorieren, oder im Falle des Exports zu. Pdf programmgesteuert wie kann ich nur die erste Seite exportieren den Rest ignorieren.

Zum Beispiel, wenn ein Bericht normalerweise 2 Seiten rendern würde, möchte ich, dass nur der erste gerendert wird.

Ist es möglich, den Report Viewer zu verwenden?

Vielen Dank.

Antwort

1

Ich bin mir nicht sicher, wie man das pdf auf eine Seite begrenzt. Aber hier ist, wie Sie nach pdf exportieren:

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

Vielen Dank Dave. es hat gut funktioniert. – Fayde