Você está offline; aguardando reconexão

Como exibir um relatório que contém um sub-relatório usando o controle ReportViewer no Visual Studio 2005

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 919157
Sumário
No Microsoft Visual Studio 2005, você não pode exibir diretamente um relatório que contém um sub-relatório usando o controle ReportViewer no seu aplicativo. Quando você tenta exibir o relatório, você receberá a seguinte mensagem de erro:
Erro: Não pôde ser mostrado sub-relatório
Além disso, você receberá a seguinte mensagem de aviso na janela saída do Visual Studio 2005:
Aviso: Erro ao executar o sub-relatório ‘ subreport1 ’: Ocorreu um erro durante o processamento de relatório. (rsErrorExecutingSubreport)
Esse problema ocorre quando todas as seguintes condições forem verdadeiras:
  • Você tenta exibir um relatório usando o controle ReportViewer no seu aplicativo.
  • O relatório contém um sub-relatório.
  • O modo de processamento do controle ReportViewer é definido como local.
No entanto, você pode exibir o relatório adicionando um manipulador de eventos para o evento SubreportProcessing do controle ReportViewer . Em seguida, manualmente defina a fonte de dados para o relatório no processo manipulador de eventos. Este artigo descreve como exibir um relatório que contém um sub-relatório usando o controle ReportViewer .
Mais Informações
Para usar o controle ReportViewer para exibir um relatório que contém um sub-relatório no modo local, execute essas etapas:
  1. Adicione um manipulador de eventos para o evento SubreportProcessing antes de chamar o método RefreshReport . Por exemplo, se você desejar exibir o relatório quando o formulário é carregado, adicione o seguinte código ao evento Load . Neste exemplo de código, o manipulador de eventos para o evento SubreportProcessing é SubreportProcessingEventHandler :

    código do Microsoft Visual Basic .NET
    Private Sub <FormName>_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load	'	' Other code is here.	'	Dim instance As LocalReport = Me.ReportViewer1.LocalReport	Me.ContactTableAdapter.Fill(Me.AdventureWorksDataSet.Contact)	AddHandler ReportViewer1.LocalReport.SubreportProcessing, AddressOf Me.SubreportProcessingEventHandler	Me.ReportViewer1.RefreshReport()	'	' Other code is here.	'End Sub
    Microsoft Visual translation from VPE for Csharp código
    private void <FormName>_Load(object sender, EventArgs e){	/*	Other code is here.	*/	this.ContactTableAdapter.Fill(this.AdventureWorksDataSet.Contact);	this.reportViewer1.LocalReport.SubreportProcessing +=  	new SubreportProcessingEventHandler(SubreportProcessingEventHandler);	this.reportViewer1.RefreshReport();	/*	Other code is here.	*/}
    Observação <FormName> representa o nome do formulário.
  2. Adicionar o código para o manipulador de eventos e definir manualmente a fonte de dados para o relatório no processo manipulador de eventos. Por exemplo, use o seguinte exemplo de código.

    Observação Este exemplo de código assume que adicionar uma fonte de dados para o projeto e vinculado a fonte de dados do formulário. O sub-relatório contém dados da fonte de dados. Para obter mais informações sobre como vincular a fonte de dados para o formulário, visite o seguinte site da Web Microsoft Developer Network (MSDN): código do Visual Basic .NET
    Public Sub SubreportProcessingEventHandler(ByVal sender As Object, ByVal e As SubreportProcessingEventArgs)	e.DataSources.Add(New ReportDataSource("AdventureWorksDataSet_Contact", Me.AdventureWorksDataSet.Contact))End Sub
    código do Visual translation from VPE for Csharp
    void SubreportProcessingEventHandler(object sender, SubreportProcessingEventArgs e){	e.DataSources.Add(new ReportDataSource("AdventureWorksDataSet_Contact", this.AdventureWorksDataSet.Contact ));}
Referências
Para obter mais informações sobre o controle ReportViewer , visite o seguinte site da MSDN:

Propriedades

ID do Artigo: 919157 - Última Revisão: 05/31/2006 21:18:15 - Revisão: 1.2

Microsoft SQL Server 2005 Reporting Services

  • kbmt kbhowto kbexpertiseadvanced kbsql2005bi kbsql2005rs kbinfo KB919157 KbMtpt
Comentários
ar m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">