Condividi tramite


Lezione 1: Creazione del progetto di Visual Studio per lo schema RDL

Per questa esercitazione verrà creata una semplice applicazione console. Nell'esercitazione si presuppone che l'ambiente di sviluppo utilizzato sia Microsoft Visual Studio 2008.

Nota

Quando si accede al servizio Web ReportServer in esecuzione su SQL Server Express with Advanced Services, è necessario aggiungere "_SQLExpress" al percorso "ReportServer". Ad esempio:

http://myserver/reportserver_sqlexpress/reportservice2010.asmx"

Per creare il proxy del servizio Web

  1. Dal menu Start, selezionare Tutti i programmi, Microsoft Visual Studio, Visual Studio Tools, quindi scegliere l'opzione relativa al prompt dei comandi di Visual Studio 2008.

  2. Nella finestra del prompt dei comandi, eseguire il comando seguente se si utilizza C#:

    wsdl /language:CS /n:"ReportService2010" http://<Server Name>/reportserver/reportservice2010.asmx?wsdl
    

    Se si utilizza Visual Basic, eseguire il comando seguente:

    wsdl /language:VB /n:"ReportService2010" http://<Server Name>/reportserver/reportservice2010.asmx?wsdl
    

    Questo comando genera un file con estensione cs o vb. Questo file verrà aggiunto all'applicazione.

Per creare un'applicazione console

  1. Scegliere Nuovo dal menu File, quindi fare clic su Progetto per visualizzare la finestra di dialogo Nuovo progetto.

  2. Fare clic su Visual Basic o sul nodo Visual C# nel riquadro Tipi progetto.

  3. Fare clic sull'icona Applicazione console.

  4. Nella casella Nome immettere un nome per il progetto. Digitare il nome SampleRDLSchema.

  5. Nella casella Percorso immettere il percorso della cartella in cui si desidera salvare il progetto oppure fare clic su Sfoglia per selezionare la cartella.

  6. Fare clic su OK. Il progetto verrà visualizzato in una vista compressa in Esplora soluzioni.

  7. Scegliere Aggiungi elemento esistente dal menu Progetto.

  8. Passare al percorso del file con estensione cs o vb generato, quindi selezionare il file e fare clic su Aggiungi.

    È inoltre necessario aggiungere un riferimento allo spazio dei nomi System.Web.Services per il riferimento Web da utilizzare.

  9. Scegliere Aggiungi riferimento dal menu Progetto.

    Nella finestra di dialogo Aggiungi riferimento, nella scheda .NET selezionare System.Web.Services, quindi fare clic su OK.

    Per ulteriori informazioni sulla connessione al servizio Web ReportServer, vedere Compilazione di applicazioni tramite servizio Web e .NET Framework.

  10. Espandere il nodo del progetto in Esplora soluzioni. Al progetto è stato aggiunto un file di codice con il nome predefinito Program.cs (Module1.vb per Visual Basic).

  11. Aprire il file Program.cs (Module1.vb per Visual Basic) e sostituire il codice con quanto segue:

    Il codice seguente fornisce gli stub del metodo da utilizzare per l'implementazione della funzionalità di caricamento, aggiornamento e salvataggio.

    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 
    

Lezione successiva

Nella lezione successiva verrà utilizzato lo strumento per la definizione di XML Schema (Xsd.exe) per generare classi dallo schema RDL e includerle nel progetto. Vedere Lezione 2: Generazione delle classi dallo schema RDL mediante lo strumento xsd.