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 >>