Alessandra,

O problema parece estar no teste:

"if (DATA + NDIAS)  = now then", pois se a soma não resultar exatamente 
na data e hora atual não funciona !


troque por

procedure TDm.Cds_FinanceiroCalcFields(DataSet: TDataSet);
begin
    if (Cds_FinanceiroDTA_PEDIDO.AsDateTime + 
Cds_FinanceiroNDIAS.AsInteger)<=now then
       begin
           Cds_FinanceiroVENCIDO.AsDateTime := now;
       end;

........


Sucesso !!

Moacir


> Em 16/02/2010 23:32, alessandra porto escreveu:
>> Amigos
>> Tentei de varias formas mas  a  coisa da erro
>>
>> na tabela os campos
>>
>> DTA_PEDIDO  = date;
>> NDIAS            = Integer;
>>
>> a ideia  e  somar um certo numero de dias a uma data e comparar com o 
>> dia atual
>> e jogar o resultado ao um campo calculado (VENCIDO)
>>
>>
>>
>> procedure TDm.Cds_FinanceiroCalcFields(DataSet: TDataSet);
>> var
>>    DATA  : Tdate;
>>    NDIAS : integer;
>>   begin
>>
>>     DATA  :=strtodate(Cds_FinanceiroDTA_PEDIDO.AsString);
>>     NDIAS :=Cds_FinanceiroNDIAS.AsInteger;
>>
>>     if (DATA + NDIAS)  = now then
>>        begin
>>            Cds_FinanceiroVENCIDO.AsString :=datetostr(now);
>>        end;
>>
>>   Já fiz mil e uma tentativas e nada
>>
>> já usei       Cds_FinanceiroDTA_PEDIDO.AsDateTime   direto na  
>> variavel DATA e nada
>>
>> Deve ser simples a solução mas  eu não consegui achar
>>
>>
>> Agradeço aos amigos que puderem ajudar
>>

Responder a