Ajuda com relatório no Delphi com RDPrint

16/09/2019

0

Boa tarde. O código que segue abaixo é de um relatório que estou trabalhando, o detalhe é que os textos estão ficando sobrepostos.
A ideia é que caso eu tenha 10 DEMANDAS e para cada DEMANDA eu tenha 10 ACOMPANHAMENTOS eu quero listar para cada DEMANDA os seus 10 ACOMPANHAMENTOS

>>DEMANDA<<
1
>>ACOMPANHAMENTO<<
1
2
3
10
>>DEMANDA<<
2
>>ACOMPANHAMENTO
1
2
3
10
e assim por diante

PS. No final do código eu coloquei como gostaria que o relatório fique.

if ChBAberta.Checked then
begin
FDLerDemandas.Active := False;
FDLerDemandas.SQL.Clear;
FDLerDemandas.SQL.Add('select DE.*, CL.CL_NOME');
FDLerDemandas.SQL.Add('from DEMANDAS DE');
FDLerDemandas.SQL.Add('left join CLIENTES CL on CL.CL_NUMERO = DE.DE_CODCLIENTE');
FDLerDemandas.SQL.Add('where DE.DE_STATUS =:status and DE.DE_DATA between :data_ini and :data_fim');

status := 'A';

FDLerDemandas.ParamByName('status').Value := status;
FDLerDemandas.ParamByName('data_ini').Value := MaskEditIni.Date;
FDLerDemandas.ParamByName('data_fim').Value := MaskEditFim.Date;
FDLerDemandas.Active := True;

FDLerDemandas.First;
cont := 0;
while not FDLerDemandas.Eof do
begin
if linha_cor > RDprint.TamanhoQteLinhas-6 then
RDprint.Novapagina;

rdprint.Imp (linha_cor+2,01, '>>DEMANDA<< :');
rdprint.Imp (linha_cor+3,01, 'REGISTRO DATA BASE DATA LIMITE STATUS');
rdprint.Imp (linha_cor+4,01, '-------- ---------- ----------- ------- ');
rdprint.Imp (linha_cor+6,01, 'REQUISITANTE CLIENTE DEMANDA DESTINATÁRIO');
rdprint.Imp (linha_cor+7,01, '-------------------- ----------------------------- ------------------------------------------ --------------------');

inc (linha_cor, 8);
//if cont = 0 then
// linha_cor := 10;

rdprint.Imp(linha_cor,01,Campo_direita(FDLerDemandasDE_REGISTRO.AsString,8, ' '));
rdprint.Imp(linha_cor,11,FormatDateTime('dd/mm/yyyy',FDLerDemandasDE_DATA.Value));
rdprint.Imp(linha_cor,23,FormatDateTime('dd/mm/yyyy',FDLerDemandasDE_DATA_LIMITE.Value));
rdprint.Imp(linha_cor,36,Campo_esquerda('ABERTA', 36, ' '));

//if cont = 0 then
// linha_cor := 13;

FDLer_Usuario.Active := False;
FDLer_Usuario.ParamByName('cod').Value := FDLerDemandasDE_USUARIO_REQUISITANTE.Value;
FDLer_Usuario.Active := True;
rdprint.Imp(linha_cor,01,Campo_esquerda(FDLer_UsuarioUS_LOGIN.AsString,20, ' ' ));

rdprint.Imp(linha_cor,23,Campo_esquerda(FDLerDemandasCL_NOME.AsString,29, ' ' ));
rdprint.Imp(linha_cor,54,Campo_esquerda(FDLerDemandasDE_TEXTO_DEMANDA.AsString,40, ' ' ));

FDLer_Usuario.Active := False;
FDLer_Usuario.ParamByName('cod').Value := FDLerDemandasDE_USUARIO_DESTINATARIO.Value;
FDLer_Usuario.Active := True;
rdprint.Imp(linha_cor,98,Campo_esquerda(FDLer_UsuarioUS_LOGIN.AsString,20, ' ' ));

FDLerAcompanhamento.Active := False;
FDLerAcompanhamento.ParamByName('DE_REGISTRO').Value := FDLerDemandasDE_REGISTRO.Value;
FDLerAcompanhamento.Active := True;

FDLerAcompanhamento.First;
linha_cor := 13;

if not FDLerDemandas.eof then
begin
rdprint.Imp (linha_cor+2,01, '>>ACOMPANHAMENTOS<< :');
rdprint.Imp (linha_cor+3,01, 'DATA BASE DATA LIMITE ACOMPANHAMENTO');
rdprint.Imp (linha_cor+4,01, '---------- ----------- --------------------------------------------------------------------------------------------');

inc (linha_cor, 5);
end;

while not FDLerAcompanhamento.Eof do
begin
rdprint.Imp(linha_cor,01,FormatDateTime('dd/mm/yyyy',FDLerAcompanhamentoAC_DATA.Value));
if FDLerAcompanhamentoAC_DATA_LIMITE.IsNull then
rdprint.Imp(linha_cor,13,'*******', clRed)
else
rdprint.Imp(linha_cor,13,FormatDateTime('dd/mm/yyyy',FDLerAcompanhamentoAC_DATA_LIMITE.Value));
rdprint.Imp(linha_cor,26,Campo_esquerda(FDLerAcompanhamentoAC_TEXTO_ACOMPANHAMENTO.AsString,100, ' ' ));

FDLerAcompanhamento.next;
inc (linha_cor);
end;
inc (linha_cor);
inc (cont);
FDLerDemandas.Next;
end;
end;


>>DEMANDA<<
REGISTRO DATA BASE DATA LIMITE STATUS
---------- ----------- ------------- --------
1 09/09/2019 12/09/2019 ABERTO
REQUISITANTE CLIENTE DEMANDA DESTINATÁRIO
-------------------- -------------------- ------------------------------------------ --------------------
VITOR PEDRO QUALQUER COISA ADM

>>ACOMPANHAMENTOS<<
DATA BASE DATA LIMITE ACOMPANHAMENTO
----------- ------------- --------------------------------------------------------------------------------------------
09/09/2019 12/09/2019 TESTE EM ANDAMENTO
Emanuel Gonçalves

Emanuel Gonçalves

Responder

Posts

17/09/2019

Emanuel Gonçalves

Alguém ?? ??
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar