Lektion 3: Laden einer Berichtsdefinition vom Berichtsserver
Nachdem Sie Ihr Projekt erstellt und die Klassen aus dem RDL-Schema generiert haben, können Sie eine Berichtsdefinition vom Berichtsserver laden.
So laden Sie eine Berichtsdefinition
Fügen Sie der ReportUpdater-Klasse (bzw. dem Modul, wenn Sie Visual Basic verwenden) für die Report-Klasse im oberen Bereich ein privates Feld hinzu. Mit diesem Feld wird für die Ausführungszeit der Anwendung ein Verweis auf den Bericht beibehalten, der vom Berichtsserver geladen wird.
private Report _report;
Private m_report As Report
Ersetzen Sie den Code für die LoadReportDefinition()-Methode in der Datei Program.cs (Module1.vb für Visual Basic) durch folgenden Code:
private void LoadReportDefinition() { System.Console.WriteLine("Loading Report Definition"); string reportPath = "/AdventureWorks Sample Reports/Company Sales"; // Retrieve the report defintion // from the report server byte[] bytes = _reportService.GetReportDefinition(reportPath); if (bytes != null) { XmlSerializer serializer = new XmlSerializer(typeof(Report)); // Load the report bytes into a memory stream using (MemoryStream stream = new MemoryStream(bytes)) { // Deserialize the report stream to an // instance of the Report class _report = (Report)serializer.Deserialize(stream); } } }
Private Sub LoadReportDefinition() System.Console.WriteLine("Loading Report Definition") Dim reportPath As String = _ "/AdventureWorks Sample Reports/Company Sales" 'Retrieve the report defintion 'from the report server Dim bytes As Byte() = _ m_reportService.GetReportDefinition(reportPath) If Not (bytes Is Nothing) Then Dim serializer As XmlSerializer = _ New XmlSerializer(GetType(Report)) 'Load the report bytes into a memory stream Using stream As MemoryStream = New MemoryStream(bytes) 'Deserialize the report stream to an 'instance of the Report class m_report = CType(serializer.Deserialize(stream), _ Report) End Using End If End Sub
Nächste Lektion
In der nächsten Lektion schreiben Sie Code zum Aktualisieren der Berichtsdefinition, die vom Berichtsserver geladen wurde. Siehe Lektion 4: Programmgesteuertes Aktualisieren der Berichtsdefinition.
Siehe auch