[RESOLVIDO] - Descobrir Idade e Validação

Olá a todos!

Estou iniciando no SC e estou tentando desenvolver uma aplicação para cadastro de pessoas.

Tenho uma tabela num BD MySql e minha intenção é a seguinte:

Tenho um Campo {Data} do tipo Date que é preenchido com a data do sistema no momento da inserção. Tenho outro campo {Data_Nac} do tipo Date que corresponde a data de nascimento.

Minha necessidade seria descobrir a idade da pessoa (tentei a macro sc_date_dif_2, mas não encontrei uma maneira de mostrar o resultado em um campo do formulário) e se ela tiver idade > a 59 anos ele autoriza o cadastro, se menor dá mensagem de erro.

Alguém poderia me ajudar?

Olá, o caminho é esse mesmo

Use esse método no onValidate colocando como parâmetros a data do bando de dados e a data atual (date do PHP)

Após ter a diferença em anos, basta fazer um if para ver se libera ou não, podendo dar uma mensagem de erro com sc_error_message

Boa Noite,

Faça da seguinte Maneira:

  Vá em programação->metodo PHP->crie um método chamado->mtd_calcular_data . Abaixo uma fração de código e vc adapta para o seu:

//calcula idade

$datahoje = date("d-m-y");

$diferencas = sc_dif_date_2($datanasc, "aaaa-mm-dd", $datahoje, "dd-mm-aaaa", 2);

$dif_dias        =  $diferencas[0]; 
$dif_meses   =  $diferencas[1]; 
$dif_anos      =  $diferencas[2];

{Idade} = $dif_anos;


if({Idade} >= 59)

        {
             sc_error_message("Data Inválidas: mensagem!");
         return;
        }

Depois crie um evento Ajax como o nome que desejar e utilize o campo data de nascimento para dispará-lo. Digite nele o nome do método que criou acima:
mtd_calcular_data();

Acho que resolve o seu problema…

Desculpe se houver algum erro na rotina, mas fiz meio que correndo.

Espero ter ajudado…

Rodrigo e Marcelo, muito obrigado pela colaboração de vocês. Vou testar essas dicas e informo aqui, mas já de ante-mão, agradeço demais a solicitude!

Amigo DEU CERTO o que mandamos para você. Caso tenha conseguido resolver coloque no Tópico como RESOLVIDO

Boa tarde Marcelo!

Fiz como me disse. Ajustei para os meus campos, mas barrava qualquer data >= 59 (por exemplo uma pessoa nascida em 13/09/1940).
Vi que você colovou uma variavel $datanasc e substitui pelo meu campo data. Também não funcionou.

Eu poderia, no caso, ao inves de criar o método PHP, criar um evento onload com esse código pra que ele preencha também o meu Campo Idade?

Deu certo!

Muito obrigado ao Rodrigo e ao Marcelo!

O código do Marcelo foi fundamental, muito obrigado mesmo.

Pra rodar eu precisei mudar também o formato das idades, era aí que estava complicando tudo kkkkkk. Coisa de principiante. Graças a vocês consegui resolver!

meu código ficou assim:

$diferencas = sc_dif_date_2({Data_nasc}, “aaaa-mm-dd”, {Data}, “aaaa-mm-dd”, 2);

$dif_dias = $diferencas[0];
$dif_meses = $diferencas[1];
$dif_anos = $diferencas[2];

{Idade} = $dif_anos;

if({Idade} <= 59)

        {
             sc_error_message("Data Inválidas: mensagem!");
    
        }

Obrigado pelo retorno…

Ficamos felizes quando conseguimos ajudar um amigo aqui do Fórum…

A tempo de desejar um feliz natal e um ótimo ano …