Como posso fazer essa SQL e esse Relatório

Delphi

19/01/2005

Bom dia galera, estou com um problema na minha SQL, ela funciona assim.

DM1.QrClienteCompleto.Close;
DM1.QrClienteCompleto.SQL.Clear;
DM1.QrClienteCompleto.SQL.Add(´SELECT A.Contrato, A.Nome, A.Ativo, B.Contrato, B.Data_Venc, B.Data_Pagam FROM Clientes A, Lancam B´);
DM1.QrClienteCompleto.SQL.Add(´WHERE A.Contrato = B.Contrato and A.ATIVO = ´SIM´ and B.Data_Venc >= :pData1 and B.Data_Venc <= :pData2 Order By A.Nome´);
DM1.QrClienteCompleto.ParamByName(´pData1´).AsDateTime := StrToDate(vData1);
DM1.QrClienteCompleto.ParamByName(´pData2´).AsDateTime := StrToDate(vData2);

Até aí beleza tudo funciona, porém preciso implementar um relatório que quando for verificado que o campo B.Data_Pagam = Vazio imprima ´EM ABERTO´, tentei implementar o código abaixo no BeforePrint do Relatório mas ele só imprime ´EM ABERTO´, em todos os registros mesmo que o campo Data_Pagam tenha um informação.

If DM1.QrClienteCompleto.FieldByName(´Data_Pagam´).isNull then
Begin
QrLabel8.Font.Color := clRed;
QrLabel8.Caption := ´Em Aberto´;
End


Galera agradeço a ajuda de todos.

Abraços.

Alexandre...


Vieira_alex

Vieira_alex

Curtidas 0

Respostas

Demian Soares

Demian Soares

19/01/2005

amigo esse qrlabel8 voce limpa ele depois de impresso a primeira vez?, pq vc atribui a ele um valor e nao limpa mais.. ou limpa?... qrlabel8.capiton = ´´ ?...


GOSTEI 0
Massuda

Massuda

19/01/2005

Se você quer que o ´EM ABERTO´ apareça nas linhas detalhe onde não consta a data de pagamento, você precisa fazer duas coisas:[list:81bae20af0][*:81bae20af0]Executar seu código de teste do pagamento em aberto no BeforePrint da banda de detalhe[*:81bae20af0]Limpar o Caption do QrLabel8 no caso do pagamento não estar em aberto.[/list:u:81bae20af0]


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

19/01/2005

ilustrando o que o colega Massuda disse, seu BeforePrint deveria ser algo como:


If DM1.QrClienteCompleto.FieldByName(´Data_Pagam´).isNull then
Begin
    QrLabel8.Font.Color := clRed;
    QrLabel8.Caption := ´Em Aberto´;
End
Else
    QrLabel8.Caption := ´´;


GOSTEI 0
Vieira_alex

Vieira_alex

19/01/2005

Galera obrigado pela ajuda, pois meu problema já foi solucionado, o procedimento que eu estava fazendo estava correto, porém estava colocando no BeforePrint do Relatório e SENDO que o correto é no
DetailBand1BeforePrint.

Desde já agradeço a ajuda de todos.


GOSTEI 0
POSTAR