Condividi tramite


Lezione 1: Creare il progetto di Visual Studio per lo schema RDL

Per questa esercitazione verrà creata una semplice applicazione console. Questa esercitazione presuppone che si stia sviluppando in Microsoft Visual Studio 2010.

Nota

Quando si accede al servizio Web del server di report in esecuzione in SQL Server Express con Servizi avanzati, è 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, quindi Microsoft Visual Studio, quindi Strumenti di Visual Studio, quindi Visual Studio 2010 Prompt dei comandi.

  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 e quindi fare clic su Progetto per aprire la finestra di dialogo Nuovo progetto.

  2. Nel riquadro sinistro, in Modelli installati, fare clic su Visual Basic o sul nodo Visual C# e selezionare una categoria di tipi di progetto dall'elenco espanso.

  3. Scegliere il tipo di progetto Applicazione console .

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

  5. Nella casella Percorso digitare il percorso in cui salvare il progetto oppure fare clic su Sfoglia per passare alla cartella.

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

  7. Nel menu Progetto fare clic su Aggiungi elemento esistente.

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

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

  9. Scegliere Aggiungi riferimento dal menu Progetto.

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

    Per altre informazioni su come connettersi al servizio Web del server di report, vedere Compilazione di applicazioni tramite il 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 3: Load a report definition from the report   
                //          catalog  
            }  
    
            private void UpdateReportDefinition()  
            {  
                //Lesson 4: Update the report definition using the    
                //          classes generated from the RDL Schema  
            }  
    
            private void PublishReportDefinition()  
            {  
                //Lesson 5: 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 3: Load a report definition from the report   
                '          catalog  
            End Sub  
    
            Private Sub UpdateReportDefinition()  
                'Lesson 4: Update the report definition using the   
                '          classes generated from the RDL Schema  
            End Sub  
    
            Private Sub PublishReportDefinition()  
                'Lesson 5: 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: Generare classi dallo schema RDL usando lo strumento xsd.

Vedere anche

Aggiornamento dei report mediante le classi generate dallo schema RDL (esercitazione SSRS)
Report Definition Language (SSRS)