[firebase-br] duvidas

Paulo Cesar pcyz em uol.com.br
Qui Set 4 10:50:17 -03 2008


então renato..compreendi o que vc quiz dizer
é que o sistema tem uma grid de negociação, e nesta grid aparece todos os 
dados do titulo inclusive os dias em atrazo pra saber qtos dias o devedor 
tem o titulo.

fiz este codigo como vc colocou..mas mesmo assim...o wihele esta quebrando 
no primeiro registro...ele executa somente uma vez... e não pula para o 
proximo registro

att.

----- Original Message ----- 
From: "renato" <centriscorps em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Thursday, September 04, 2008 10:28 AM
Subject: Re: [firebase-br] duvidas


Paulo,

Não vejo muito sentido em guardar no banco a quantidade de dias em atraso de
um determinado título. Todo dia tens que rodar, ou agendar, essa rotina.
Seria muito mais prático se você o tivesse como campo calculado.
O barato disso é que o cálculo ocorre somente quando o registro é exibido.

Voltando ao seu código tente fazer assim:

btnDiasAtraso.Enabled := False;
tblTitulos.First; //pra ter certeza que o ponteiro do arquivo está no início

While *NOT* tblTitulos.Eof do //enquanto não chega no final da tabela.
begin
  DtAtual := DataFim.Date;
  DtInic:=tblTitulos.fieldbyname('DataVencimento').AsDateTime;
  Dias := DaysBetWeen(DtAtual,DtInic);
  *tblTitulos.Edit;*
  tblTitulos.fieldbyname('DiasAtrazo').AsInteger:=Dias;
  *tblTitulos.Post;*
  tblTitulos.Next;
end;


Renato.



2008/9/4 Paulo Cesar <pcyz em uol.com.br>

> Bom dia pessoal estou com um problema e não estou conseguindo identificar
> tenho uma tabela que desejo fazer calculos de data no campo e ter o como
> resultados dias em atrazo
>
> fica assim
>
> datainicio-dataatual = dias em atrazo´
>
> consegui fazer o calculo e tudo..so não conseguir fazer o while na
> tabela... ele quebra o while no proximo registro achei muito estranho, 
> esta
> fazendo o calculo somente no registro atual exemplo do codigo.
>
> procedure TfrmAcordos.btnDiasAtrasoClick(Sender: TObject);
> var
>   Dias:Integer;
>   DtInic,DtAtual:TDate;
> begin
>  tblTitulos.Edit;
>  btnDiasAtraso.Enabled:=False;
>  While tblTitulos.Eof do //enquanto não chega no final da tabela.
>  begin
>       DtAtual := DataFim.Date;
>       DtInic:=tblTitulos.fieldbyname('DataVencimento').AsDateTime;
>       btnDiasAtraso.Enabled:=False;
>       Dias := DaysBetWeen(DtAtual,DtInic);
>       tblTitulos.fieldbyname('DiasAtrazo').AsInteger:=Dias;
>       tblTitulos.Next;
>    end;
>    btnDiasAtraso.Enabled:=True;
>   end;
> end.
>
> Como peguei o sistema ja começado, esta com o banco paradox, mas ja estou
> migrando para o banco firibird com os componetes DBEXpress
>
> Alguem pode me ajudar?
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista