none
Report Viewer com duas ou mais Subreport RRS feed

  • Pergunta

  • Preciso gerar um relatório que mostrará separadamente materiais e serviços, em layouts diferentes e  colocar 2(dois) subtotais ref. aos grupos que tiveram lançamentos de serviços e/ou materiais.

    modelo apresentação do relatorio:

    codMat |  Descricao | Qtde | Operaçao |yy|.....    layoutServico

    CodSer | Descricao | Qtde  | Operação |xx|zz .....   layoutMaterial

    Operacao | sum(vl_mat) |sum(vl_ser)| sum(vl_mat-Vl_ser)...............   layoutTotal_1

    Operacao | sum(vl_mat)-vl_sser) |.....................................................   layoutTotal_2

    1. No meu dataset criei 4 tabelas, cada uma contendo os campos correspondentes as layouts e gerei as .RDLC correspondentes

    2. Fiz o relatório principal com o layout Servico, add a SubReport com .rdlc do layoutMaterial e executou corretamente, mostrando os dados corretos nos 2 layouts.   Então acrescentei mais uma SubReport para gerar o primeiro subtotal, fiz da mesma forma do primeiro.   Porém o layout baixo, mostro a sequencia que programei, mas os dados não são mostrados.

    3. Para os Serviços faço a montagem do SQL e executo conecção e o resultado vai para ReportDataSource

                Dim myReportDataSource As ReportDataSource = New ReportDataSource("DataSet1", oTable)
                rvResumoDiarioDetalhe.LocalReport.DataSources.Add(myReportDataSource)

    4. Depois chamo a função abaixo, onde faço também o tratamento SQL e monto as info. para 2 layout Materiais de depois para os totais, conforme a baixo:

    AddHandler rvResumoDiarioDetalhe.LocalReport.SubreportProcessing, AddressOf SubRelatorioMaterialDiario

    AddHandler rvResumoDiarioDetalhe.LocalReport.SubreportProcessing, AddressOf SubRelatorioTotal1

    SubRelatorioMaterial() e SubRelatorioTotal1() tem a mesma sistematica, mudando o SQL o nome da tabela com o resultado

            Using da As New SqlDataAdapter(strSQL.ToString, oConn)
                Using ds As New DataSet
                    da.Fill(ds, "TB_RESUMOMEDICAO_VALOR")
                    Dim rptDataSource As New ReportDataSource _
                                              ("DataSet1", ds.Tables("TB_RESUMOMEDICAO_VALOR"))
                    e.DataSources.Add(rptDataSource)
                End Using
            End Using

    O Relatório só mostra material e serviço, se eu retirar a chamada do Material aparecerá os dados corretos do total_1.

    Já fiz varias mudanças, mais não consegui resolver.  Peço ajuda de voçês.   Obrigado

     
    sexta-feira, 20 de julho de 2012 18:11

Todas as Respostas

  • Preciso gerar um relatório que mostrará separadamente materiais e serviços, em layouts diferentes e  colocar 2(dois) subtotais ref. aos grupos que tiveram lançamentos de serviços e/ou materiais.

    modelo apresentação do relatorio:

    codMat |  Descricao | Qtde | Operaçao |yy|.....    layoutServico

    CodSer | Descricao | Qtde  | Operação |xx|zz .....   layoutMaterial

    Operacao | sum(vl_mat) |sum(vl_ser)| sum(vl_mat-Vl_ser)...............   layoutTotal_1

    Operacao | sum(vl_mat)-vl_sser) |.....................................................   layoutTotal_2

    1. No meu dataset criei 4 tabelas, cada uma contendo os campos correspondentes as layouts e gerei as .RDLC correspondentes

    2. Fiz o relatório principal com o layout Servico, add a SubReport com .rdlc do layoutMaterial e executou corretamente, mostrando os dados corretos nos 2 layouts.   Então acrescentei mais uma SubReport para gerar o primeiro subtotal, fiz da mesma forma do primeiro.   Porém o layout baixo, mostro a sequencia que programei, mas os dados não são mostrados.

    3. Para os Serviços faço a montagem do SQL e executo conecção e o resultado vai para ReportDataSource

                Dim myReportDataSource As ReportDataSource = New ReportDataSource("DataSet1", oTable)
                rvResumoDiarioDetalhe.LocalReport.DataSources.Add(myReportDataSource)

    4. Depois chamo a função abaixo, onde faço também o tratamento SQL e monto as info. para 2 layout Materiais de depois para os totais, conforme a baixo:

    AddHandler rvResumoDiarioDetalhe.LocalReport.SubreportProcessing, AddressOf SubRelatorioMaterialDiario

    AddHandler rvResumoDiarioDetalhe.LocalReport.SubreportProcessing, AddressOf SubRelatorioTotal1

    SubRelatorioMaterial() e SubRelatorioTotal1() tem a mesma sistematica, mudando o SQL o nome da tabela com o resultado

            Using da As New SqlDataAdapter(strSQL.ToString, oConn)
                Using ds As New DataSet
                    da.Fill(ds, "TB_RESUMOMEDICAO_VALOR")
                    Dim rptDataSource As New ReportDataSource _
                                              ("DataSet1", ds.Tables("TB_RESUMOMEDICAO_VALOR"))
                    e.DataSources.Add(rptDataSource)
                End Using
            End Using

    O Relatório só mostra material e serviço, se eu retirar a chamada do Material aparecerá os dados corretos do total_1.

    Já fiz varias mudanças, mais não consegui resolver.  Peço ajuda de voçês.   Obrigado

     

    Estou com o mesmo problema, você conseguiu resolver?

    Alguma alma viva pode nos ajudar neste caso!!!!
    • Editado Vollo quarta-feira, 12 de setembro de 2012 17:39
    terça-feira, 11 de setembro de 2012 12:44