Exibir idade na grid

(George Carvalho) #1

Em uma consulta tenho os nomes e as datas de nascimento das pessoas, como mostrar na grid a idade?

Obrigado.

(system) #2

utiliza esta macro.

sc_dif_date_2(data1, formato data1, data2, formato data2, opção)
sc_dif_date_2(data1, formato data1, data2, formato data2, opção)

Calcula diferença de datas, retornando a quantidade de dias, meses e anos.
O resultado será retornado em forma de array, no qual o índice 0 terá a a quantidade de dias, o índice 1 terá a quantidade de meses e o índice 2 terá a quantidade de anos.

data1 - Valor ou variável contendo a primeira data.
formato data1 - Valor ou variável contendo o formato no qual está armazenada a data1.
data2 - Valor ou variável contendo a segunda data.
formato data2 - Valor ou variável contendo o formato no qual está armazenada a data2.
opção - 1 = não considera o dia inicial; 2 = considera o dia inicial inclusive.

Ex1:
{diferenças} = sc_dif_date_2 ({data1}, “aaaa-mm-dd”, {data2}, “dd/mm/aaaa”, 1);
{dif_dias} = {diferencas[0]};
{dif_meses} = {diferencas[1]};
{dif_anos } = {diferencas[2]};

Ex2:
{diferenças} = sc_dif_date_2 (“2000-05-01”, “aaaa-mm-dd”, “21/04/2004”, “dd/mm/aaaa”, 1);
{diferencas[0]} seria igual a 20 (dias)
{diferencas[1]} seria igual a 11 (meses)
{diferencas[2]} seria igual a 3 (anos).

Ex3: Utilizando a opção 2
{diferenças} = sc_dif_date_2 (“2000-05-01”, “aaaa-mm-dd”, “21/04/2004”, “dd/mm/aaaa”, 2);
{diferencas[0]} seria igual a 21 (dias)
{diferencas[1]} seria igual a 11 (meses)
{diferencas[2]} seria igual a 3 (anos).

Obs: Embora os formatos possam ser diferentes, as datas devem ser compostas de dia, mês e ano.

Vc retorna o dia mes e ano.

(George Carvalho) #3

Entendi, obrigado.

Mas como colocar na grid da consulta???

(George Carvalho) #4

Já consegui, obrigado.

Procedimentos adotados:

Criei um campo chamado ‘idade’;

No evento onRecord coloquei:

$datahoje = date(“d-m-Y”);
{data} = sc_dif_date_2 ({data_nascimento}, “aaaa-mm-dd”, $datahoje, “dd-mm-aaaa”, 2);
{idade} = {data[2]};

(system) #5

isto mesmo