Compartilhar via


Lição 3: Carregar uma definição de relatório do Servidor de Relatório

Depois que você criar seu projeto e gerar as classes do esquema RDL, estará pronto para carregar uma definição de relatório do servidor de relatório.

Para carregar uma definição de relatório

  1. Adicione um campo privado na parte superior da ReportUpdater classe (módulo se você estiver usando o Visual Basic) para a Report classe . Este campo será usado para manter uma referência ao relatório carregado do servidor de relatório enquanto durar o aplicativo.

    private Report _report;  
    
    Private m_report As Report  
    
  2. Substitua o código do LoadReportDefinition() método no arquivo Program.cs (Module1.vb for Visual Basic) pelo seguinte código:

    private void LoadReportDefinition()  
    {  
        System.Console.WriteLine("Loading Report Definition");  
    
        string reportPath =   
            "/AdventureWorks 2012 Sample Reports/Company Sales 2012";  
    
        // Retrieve the report definition   
        // from the report server  
        byte[] bytes =   
            _reportService.GetItemDefinition(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 2012 Sample Reports/Company Sales 2012"  
    
        'Retrieve the report definition   
        'from the report server  
        Dim bytes As Byte() = _  
            m_reportService.GetItemDefinition(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  
    

Próxima lição

Na próxima lição, você escreverá código para atualizar a definição de relatório carregada do servidor de relatório. Consulte Lição 4: atualizar a definição de relatório programaticamente.

Consulte Também

Atualizando relatórios usando classes geradas por meio do Esquema RDL (Tutorial SSRS)
Linguagem RDL (SSRS)