Calcular idade e mostrar no dbgrid

Delphi

05/05/2013

Bom dia pessoal, é o seguinte:

Tenho na tabela o campo DATANASC. O que eu quero fazer é calcular a idade e mostrar no DBGrid. Como posso fazer isso?
Frederico Brigatte***

Frederico Brigatte***

Curtidas 0

Respostas

Frederico Brigatte***

Frederico Brigatte***

05/05/2013

Eu fiz assim:

function CalcAnos(const Data1, Data2: TDateTime): integer;
var
D1, M1, A1,
D2, M2, A2: Word;
begin
DecodeDate(Data1, A1, M1, D1);
DecodeDate(Data2, A2, M2, D2);

Result := A2 - A1;

if (M1 > M2) or ((M1 = M2) and (D1 > D2)) then
Dec(Result);
end;


procedure TDM.cds_DependentesCalcFields(DataSet: TDataSet);
var
  Idade : TDateTime;
begin
  Idade := cds_DependentesDATA_NASC.AsVariant;
  cds_DependentesIdade.AsVariant := IntToStr(CalcAnos(Idade, Date));
end;


Não está trazendo nada. Quando debuguei deu a mensagem: Variable 'Self' inaccessible here due to optimization
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

05/05/2013

Resolvido.
GOSTEI 0
Wellingthon Oliveira

Wellingthon Oliveira

05/05/2013

como foi que vc conseguiu resolver seu problema amigo??
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

05/05/2013

Você está com o mesmo problema?
GOSTEI 0
Wellingthon Oliveira

Wellingthon Oliveira

05/05/2013

basicamente sim amigo..
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

05/05/2013

o que vc está fazendo?
GOSTEI 0
Wellingthon Oliveira

Wellingthon Oliveira

05/05/2013

o meu problema e o seguinte...tenho uma tela de cadastro de crianças onde insiro todos os dados, inclusive a data de nascimento DD/MM/AAAA

e tenho uma tela de cadastro de festas, e cadastro nessa tela as crianças que irão participar da festa, e os nomes das crianças são mostradas no dbgrid.

o cliente pediu que aparecesse a idade nessa grid ao lado do nome.

não tenho ideia de como somar a idade da tela de cadastro de crianças e mostrar na tela de cadastro de festas.

uso IBDataBase - IBDataSet - DataSource - IBUpdateSQL.

GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

05/05/2013

que banco vc está usando e qual delphi?
GOSTEI 0
Wellingthon Oliveira

Wellingthon Oliveira

05/05/2013

SQL Mananger 2005 - Firebird - Delphi XE2
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

05/05/2013

Quer mandar o projeto para eu ver?

frederico.brigatte@gmail.com

Dou uma olhada e te mando.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

05/05/2013

tem skype ou gtalk?

skype: frederico.brigatte@itelefonica.com.br

gtalk: frederico.brigatte@gmail.com

Ta usando dois bancos ou o primeiro é um gerenciador?
GOSTEI 0
Wellingthon Oliveira

Wellingthon Oliveira

05/05/2013

Enviado o projeto..me add no skype wellingthon..g.o
GOSTEI 0
Wellingthon Oliveira

Wellingthon Oliveira

05/05/2013

add vc no skype
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

05/05/2013

qual é seu skype? não entendi. Não recebi.
GOSTEI 0
José

José

05/05/2013

Como a duvida inicial foi solucionada, estou marcando o tópico como concluído.
Fiquem a vontade para abrir novos, tópicos, ou solicitar a reabertura deste.
GOSTEI 0
POSTAR