QUICKREPORT COM VÁRIOS DETAILS
bom dia....
preciso fazer um relatorio com o seguinte formato de bandas:
========================================
[b:0b47326d1a]banda title:[/b:0b47326d1a]
RELATÓRIO
[b:0b47326d1a]banda column header 1:[/b:0b47326d1a]
QUEBRA PROCEDIMENTOS
[b:0b47326d1a]banda detail 1:[/b:0b47326d1a]
PROCEDIMENTO 1
PROCEDIMENTO 2
PROCEDIMENTO 3
[b:0b47326d1a]banda column header 2:[/b:0b47326d1a]
QUEBRA HONORARIOS
[b:0b47326d1a]banda detail 2:[/b:0b47326d1a]
HONORARIO 1
HONORARIO 2
HONORARIO 3
[b:0b47326d1a]banda column header 3:[/b:0b47326d1a]
QUEBRA DIVERSOS
[b:0b47326d1a]banda detail 3:[/b:0b47326d1a]
DIVERSO 1
DIVERSO 2
DIVERSO 3
========================================
não estou conseguindo colocar vários column headers/details no mesmo rel.... so aparece o primeiro column header e o primeiro detail.... alguem sabe pq?? isso seria possivel??
obs:
- todos os dados sao lidos de objetos da tela que chama o rel, e nao de dataset.... preciso que o rel seja montado praticamente de forma dinamica....
- ja tentei desabilitar as bandas, mudar a altura das que nao estao sendo usadas, etc.... nada funcionou....
segue o codigo:
obrigado....
rodrigo....
preciso fazer um relatorio com o seguinte formato de bandas:
========================================
[b:0b47326d1a]banda title:[/b:0b47326d1a]
RELATÓRIO
[b:0b47326d1a]banda column header 1:[/b:0b47326d1a]
QUEBRA PROCEDIMENTOS
[b:0b47326d1a]banda detail 1:[/b:0b47326d1a]
PROCEDIMENTO 1
PROCEDIMENTO 2
PROCEDIMENTO 3
[b:0b47326d1a]banda column header 2:[/b:0b47326d1a]
QUEBRA HONORARIOS
[b:0b47326d1a]banda detail 2:[/b:0b47326d1a]
HONORARIO 1
HONORARIO 2
HONORARIO 3
[b:0b47326d1a]banda column header 3:[/b:0b47326d1a]
QUEBRA DIVERSOS
[b:0b47326d1a]banda detail 3:[/b:0b47326d1a]
DIVERSO 1
DIVERSO 2
DIVERSO 3
========================================
não estou conseguindo colocar vários column headers/details no mesmo rel.... so aparece o primeiro column header e o primeiro detail.... alguem sabe pq?? isso seria possivel??
obs:
- todos os dados sao lidos de objetos da tela que chama o rel, e nao de dataset.... preciso que o rel seja montado praticamente de forma dinamica....
- ja tentei desabilitar as bandas, mudar a altura das que nao estao sendo usadas, etc.... nada funcionou....
segue o codigo:
procedure TqrpRelAuditoriaTxt.QuickRepNeedData(Sender: TObject; var MoreData: Boolean); begin if LinhaProcedimento <= frmRelAuditoriaTxt.ngProcedimento.RowCount - 1 then begin MoreData := true; qrbColumnHeaderProcedimento.Height := 56; qrbColumnHeaderHonorario.Height := 0; qrbColumnHeaderDiverso.Height := 0; qrbDetailProcedimento.Height := 56; qrbDetailHonorario.Height := 0; qrbDetailDiverso.Height := 0; qrbDetailProcedimento.Enabled := true; qrbDetailHonorario.Enabled := false; qrbDetailDiverso.Enabled := false; frmRelAuditoriaTxt.ngProcedimento.SelectedRow := LinhaProcedimento; frmRelAuditoriaTxt.ngProcedimentoSelectCell(Self, 0, LinhaProcedimento); qrlProcedimentoCodigo.Caption := frmRelAuditoriaTxt.ngProcedimento.Cell[1, LinhaProcedimento].AsString; qrlProcedimentoUnitarioOriginal.Caption := frmRelAuditoriaTxt.edtProcUniOri.Text; qrlProcedimentoQtdeOriginal.Caption := frmRelAuditoriaTxt.edtProcQtdeOri.Text; qrlProcedimentoTotalOriginal.Caption := frmRelAuditoriaTxt.edtProcValorOri.Text; qrlProcedimentoTaxaOriginal.Caption := frmRelAuditoriaTxt.edtProcTaxaOri.Text; qrlProcedimentoGeralOriginal.Caption := frmRelAuditoriaTxt.edtProcTotOri.Text; qrlProcedimentoUnitarioGlosado.Caption := FormatFloat(PtBRFloat, StrToFloatDef(frmRelAuditoriaTxt.edtProcUniAut.Text, 0) + StrToFloatDef(frmRelAuditoriaTxt.edtProcUniMan.Text, 0)); qrlProcedimentoQtdeGlosado.Caption := IntToStr(StrToIntDef(frmRelAuditoriaTxt.edtProcQtdeAut.Text, 0) + StrToIntDef(frmRelAuditoriaTxt.edtProcQtdeMan.Text, 0)); qrlProcedimentoTotalGlosado.Caption := FormatFloat(PtBRFloat, StrToFloatDef(frmRelAuditoriaTxt.edtProcValorAut.Text, 0) + StrToFloatDef(frmRelAuditoriaTxt.edtProcValorMan.Text, 0)); qrlProcedimentoTaxaGlosado.Caption := FormatFloat(PtBRFloat, StrToFloatDef(frmRelAuditoriaTxt.edtProcTaxaAut.Text, 0) + StrToFloatDef(frmRelAuditoriaTxt.edtProcTaxaMan.Text, 0)); qrlProcedimentoGeralGlosado.Caption := FormatFloat(PtBRFloat, StrToFloatDef(frmRelAuditoriaTxt.edtProcTotAut.Text, 0) + StrToFloatDef(frmRelAuditoriaTxt.edtProcTotMan.Text, 0)); qrlProcedimentoUnitarioResultado.Caption := frmRelAuditoriaTxt.edtProcUniFin.Text; qrlProcedimentoQtdeResultado.Caption := frmRelAuditoriaTxt.edtProcQtdeFin.Text; qrlProcedimentoTotalResultado.Caption := frmRelAuditoriaTxt.edtProcValorFin.Text; qrlProcedimentoTaxaResultado.Caption := frmRelAuditoriaTxt.edtProcTaxaFin.Text; qrlProcedimentoGeralResultado.Caption := frmRelAuditoriaTxt.edtProcTotFin.Text; Inc(LinhaProcedimento); end else if LinhaHonorario <= frmRelAuditoriaTxt.ngHonorario.RowCount - 1 then begin MoreData := true; qrbColumnHeaderProcedimento.Height := 0; qrbColumnHeaderHonorario.Height := 56; qrbColumnHeaderDiverso.Height := 0; qrbDetailProcedimento.Height := 0; qrbDetailHonorario.Height := 56; qrbDetailDiverso.Height := 0; qrbDetailProcedimento.Enabled := false; qrbDetailHonorario.Enabled := true; qrbDetailDiverso.Enabled := false; qrlHonorarioCodigo.Caption := ´honorario´; Inc(LinhaHonorario); end else if LinhaDiverso <= frmRelAuditoriaTxt.ngDiversos.RowCount - 1 then begin MoreData := true; qrbColumnHeaderProcedimento.Height := 0; qrbColumnHeaderHonorario.Height := 0; qrbColumnHeaderDiverso.Height := 56; qrbDetailProcedimento.Height := 0; qrbDetailHonorario.Height := 0; qrbDetailDiverso.Height := 56; qrbDetailProcedimento.Enabled := false; qrbDetailHonorario.Enabled := false; qrbDetailDiverso.Enabled := true; qrlDiversoCodigo.Caption := ´diverso´; Inc(LinhaDiverso); end else begin MoreData := false; Abort; end; end;
obrigado....
rodrigo....
Rodrigo.zanferrari
Curtidas 0
Respostas
Diegotiemann
21/09/2009
não estou conseguindo colocar vários column headers/details no mesmo rel.... so aparece o primeiro column header e o primeiro detail.... alguem sabe pq?? isso seria possivel??
Não. Até aonde eu sei isso não é possível.
GOSTEI 0
Rodrigo.zanferrari
21/09/2009
sugestao de como proceder??
GOSTEI 0
Diegotiemann
21/09/2009
Uma maneira seria fazer com agrupamento.
Dai você teria que usar UNION pra retornar todos os registros no mesmo data set.
E no before print das bandas tu ajusta a posição dos teus componentes.
É bem trabalhoso, mas funciona.
Dai você teria que usar UNION pra retornar todos os registros no mesmo data set.
E no before print das bandas tu ajusta a posição dos teus componentes.
É bem trabalhoso, mas funciona.
GOSTEI 0