Inquiridor
Report Viewer com duas ou mais Subreport

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 UsingO 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
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 UsingO 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