Lektion 1: Erstellen des RDL-Schema-Projekts in Visual Studio
In diesem Lernprogramm erstellen Sie eine einfache Konsolenanwendung. Im Zusammenhang mit diesem Lernprogramm wird davon ausgegangen, dass Sie in Microsoft Visual Studio 2008 entwickeln.
Hinweis |
---|
Wenn Sie auf den Berichtsserver-Webdienst zugreifen, der in SQL Server Express mit Advanced Services ausgeführt wird, müssen Sie "_SQLExpress" an den "ReportServer"-Pfad anfügen. Zum Beispiel: http://myserver/reportserver_sqlexpress/reportservice2010.asmx" |
So erstellen Sie den Webdienstproxy
Wählen Sie im Menü StartAlle Programme aus, dann Microsoft Visual Studio, dann Visual Studio Tools, und dann Visual Studio 2008-Eingabeaufforderung.
Führen Sie den folgenden Befehl im Eingabeaufforderungsfenster aus, wenn Sie C# verwenden:
wsdl /language:CS /n:"ReportService2010" http://<Server Name>/reportserver/reportservice2010.asmx?wsdl
Wenn Sie Visual Basic verwenden, führen Sie dann den folgenden Befehl aus: ///
wsdl /language:VB /n:"ReportService2010" http://<Server Name>/reportserver/reportservice2010.asmx?wsdl
Dieser Befehl generiert eine .cs oder eine .vb-Datei. Sie fügen diese Datei der Anwendung hinzu.
So erstellen Sie eine Konsolenanwendung
Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt, um das Dialogfeld Neues Projekt zu öffnen.
Klicken Sie im Bereich Projekttypen entweder auf den Knoten Visual Basic oder Visual C#.
Klicken Sie auf das Symbol Konsolenanwendung.
Geben Sie im Feld Name einen Namen für das Projekt ein. Geben Sie den Namen SampleRDLSchema ein.
Geben Sie im Feld Speicherort den Pfad ein, unter dem das Projekt gespeichert werden soll, oder klicken Sie auf Durchsuchen, um zum Ordner zu navigieren.
Klicken Sie auf OK. Eine reduzierte Ansicht des Projekts wird im Projektmappen-Explorer angezeigt.
Klicken Sie im Menü Projekt auf Vorhandenes Element hinzufügen.
Navigieren Sie zum Speicherort der von Ihnen generierten .cs- oder .vb-Datei, wählen Sie die Datei aus, und klicken Sie auf Hinzufügen.
Damit der Webverweis funktionsfähig ist, muss auch dem System.Web.Services-Namespace ein Verweis hinzugefügt werden.
Klicken Sie im Menü Projekt auf Verweis hinzufügen.
Wählen Sie im Dialogfeld Verweis hinzufügen auf der Registerkarte .NET den Eintrag System.Web.Services aus, und klicken Sie dann auf OK.
Weitere Informationen zum Herstellen einer Verbindung mit dem Berichtsserver-Webdienst finden Sie unter Erstellen von Anwendungen mit dem Webdienst und .NET Framework.
Erweitern Sie den Projektknoten im Projektmappen-Explorer. Sie werden feststellen, dass dem Projekt eine Codedatei mit dem Standardnamen Program.cs (bzw. Module1.vb für Visual Basic) hinzugefügt wurde.
Öffnen Sie die Datei Program.cs (Module1.vb für Visual Basic), und ersetzen Sie den Code durch folgenden Code:
Mit dem folgenden Code werden die Methodenstubs bereitgestellt, die zum Implementieren der Funktionalität zum Laden, Aktualisieren und Speichern verwendet werden.
using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Xml; using System.Xml.Serialization; using ReportService2010; namespace SampleRDLSchema { class ReportUpdater { ReportingService2010 _reportService; static void Main(string[] args) { ReportUpdater reportUpdater = new ReportUpdater(); reportUpdater.UpdateReport(); } private void UpdateReport() { try { // Set up the Report Service connection _reportService = new ReportingService2010(); _reportService.Credentials = System.Net.CredentialCache.DefaultCredentials; _reportService.Url = "http://<Server Name>/reportserver/" + "reportservice2010.asmx"; // Call the methods to update a report definition LoadReportDefinition(); UpdateReportDefinition(); PublishReportDefinition(); } catch (Exception ex) { System.Console.WriteLine(ex.Message); } } private void LoadReportDefinition() { //Lesson 2: Load a report definition from the report // catalog } private void UpdateReportDefinition() { //Lesson 3: Update the report definition using the // classes generated from the RDL Schema } private void PublishReportDefinition() { //Lesson 4: Publish the updated report definition back // to the report catalog } } }
Imports System Imports System.Collections.Generic Imports System.IO Imports System.Text Imports System.Xml Imports System.Xml.Serialization Imports ReportService2010 Namespace SampleRDLSchema Module ReportUpdater Private m_reportService As ReportingService2010 Public Sub Main(ByVal args As String()) Try 'Set up the Report Service connection m_reportService = New ReportingService2010 m_reportService.Credentials = _ System.Net.CredentialCache.DefaultCredentials m_reportService.Url = _ "http:// <Server Name>/reportserver/" & _ "reportservice2010.asmx" 'Call the methods to update a report definition LoadReportDefinition() UpdateReportDefinition() PublishReportDefinition() Catch ex As Exception System.Console.WriteLine(ex.Message) End Try End Sub Private Sub LoadReportDefinition() 'Lesson 2: Load a report definition from the report ' catalog End Sub Private Sub UpdateReportDefinition() 'Lesson 3: Update the report definition using the ' classes generated from the RDL Schema End Sub Private Sub PublishReportDefinition() 'Lesson 4: Publish the updated report definition back ' to the report catalog End Sub End Module End Namespace
Nächste Lektion
In der nächsten Lektion generieren Sie mithilfe des XML-Schemadefinitionstools (Xsd.exe) Klassen aus dem RDL-Schema und fügen diese in das Projekt ein. Siehe Lektion 2: Generieren von Klassen aus dem RDL-Schema mithilfe des XSD-Tools.
Siehe auch