Partilhar 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 no início da classe ReportUpdater (ou módulo se você estiver usando o Visual Basic) para a classe Report. 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 para o método LoadReportDefinition() no arquivo Program.cs (Module1.vb para o Visual Basic) pelo seguinte código:

    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
    

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 do relatório programaticamente.