none
ReportViewer - Subreport dentro de Subreport RRS feed

  • Pergunta

  • Olá,

    Existe a possibilidade de gerar um subreport dentro de um outro subreport?

    No codebehind, não vejo meios de manipulação do subreport (nível 2). Somente consigo acessar os subreports no nível 1, ou seja, que estejam dentro do report principal. Agora como fazer para ter acesso aos subreports do nível 2, e assim por diante? É possível? O Report principal gera certinho assim como o seu subreport, porém o subreport de nível 2 dá erro (que está dentro do primeiro subreport).

    Entenda como nível 2, um subreport dentro de outro subreport.

    Agradeço desde já.

    quinta-feira, 25 de abril de 2013 14:11

Respostas

  •  

    Olá Jorge,

    Tenta aplicar o código de exemplo abaixo:

    protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("pt-BR"); rpvRelatorio.LocalReport.ReportPath = "Relatorios\\Fontes\\Relatorio.rdlc"; rpvRelatorio.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("dsPrincipal", minhasListaComDados)); rpvRelatorio.LocalReport.SubreportProcessing += new Microsoft.Reporting.WebForms.SubreportProcessingEventHandler(LocalReport_SubreportProcessing); } } void LocalReport_SubreportProcessing(object sender, Microsoft.Reporting.WebForms.SubreportProcessingEventArgs e) { int IdRelaorioPai = e.Parameters["ID"].Values.First().ToString().ToInt(); int IdRelatorioPaiSub =0; string nomeDataSourceAtual = e.DataSourceNames[0]; if (nomeDataSourceAtual == "dsSubRelatorio") { IdRelatorioPaiSub= e.Parameters["ID"].Values.First().ToString().ToInt(); e.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("dsSubRelatorio", this.ObterSubRelatorio(IdRelatorioPai))); return; } if (nomeDataSourceAtual == "dsSubSubRelatorio") { e.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("dsSubSubRelatorio", this.ObterSubSubRelatorio(IdRelatorioPaiSub))); return; } }




    quinta-feira, 13 de novembro de 2014 17:47
  • Já consegui. É póssivel sim. 

    Obrigado

    • Marcado como Resposta Marcos_Marques sexta-feira, 26 de abril de 2013 12:12
    quinta-feira, 25 de abril de 2013 14:34

Todas as Respostas

  • Já consegui. É póssivel sim. 

    Obrigado

    • Marcado como Resposta Marcos_Marques sexta-feira, 26 de abril de 2013 12:12
    quinta-feira, 25 de abril de 2013 14:34
  • Boa tarde amigo, como você conseguiu fazer?

    Att,

    Jorge.

    quinta-feira, 13 de novembro de 2014 17:08
  •  

    Olá Jorge,

    Tenta aplicar o código de exemplo abaixo:

    protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("pt-BR"); rpvRelatorio.LocalReport.ReportPath = "Relatorios\\Fontes\\Relatorio.rdlc"; rpvRelatorio.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("dsPrincipal", minhasListaComDados)); rpvRelatorio.LocalReport.SubreportProcessing += new Microsoft.Reporting.WebForms.SubreportProcessingEventHandler(LocalReport_SubreportProcessing); } } void LocalReport_SubreportProcessing(object sender, Microsoft.Reporting.WebForms.SubreportProcessingEventArgs e) { int IdRelaorioPai = e.Parameters["ID"].Values.First().ToString().ToInt(); int IdRelatorioPaiSub =0; string nomeDataSourceAtual = e.DataSourceNames[0]; if (nomeDataSourceAtual == "dsSubRelatorio") { IdRelatorioPaiSub= e.Parameters["ID"].Values.First().ToString().ToInt(); e.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("dsSubRelatorio", this.ObterSubRelatorio(IdRelatorioPai))); return; } if (nomeDataSourceAtual == "dsSubSubRelatorio") { e.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("dsSubSubRelatorio", this.ObterSubSubRelatorio(IdRelatorioPaiSub))); return; } }




    quinta-feira, 13 de novembro de 2014 17:47
  • Olá, José Carlos.

    Muito obrigado por sua resposta, funcionou perfeitamente!!

    terça-feira, 9 de dezembro de 2014 13:24