Duvida Eventos OnValidate

Pessoal,

Qual a diferença entre os eventos (Formulário)

onValidate, onValidateSuccess e onValidateFailure.

Até hoje eu achei que durante a inclusão (por exemplo)

o OnValidate - quando o botão inserir fosse clicado;
o OnValidateSucesso - Se o registro fosse gravado com sucesso;
o OnValidateFailure - Se ocorreu erro na Inclusão e o registro não foi incluído.

É isso?

T+

Bom dia.

O evento OnValidate ocorre quando você faz um submit no formulário: Incluir, Atualizar ou Excluir.
Nele o scriptcase ainda não chegou no banco para modificar as informações.
Qualquer validação necessária antes de gravar os dados deve ser feita nesse evento, através de comandos php ou de macros do SC.
Por exemplo: num cadastro de motoristas verificar se a pessoa tem ao menos 18 anos.

$dataatual = date(“Y-m-d”);
{dif_data} = sc_date_dif_2({data_nasc}, “aaaa-mm-dd”, $dataatual, “aaaa-mm-dd”, 1);
if ({dif_data[2]} < 18)
{
sc_error_message(“Idade mínima deve ser 18 anos.”);
}

Se a validação estiver ok, ou seja, se não entrar no if, passa para o evento OnValidateSucess.
Se a validação estiver errada, ou seja, se entrar no if, passa para o evento OnValidateFailure.

Na verdade, eu nunca precisei dos dois últimos eventos, sempre usei só o OnValidate.
Pois quando encontra o sc_error_message, ele não grava os dados.

Espero ter ajudado.

Até +

Caro Adriano,

Isso é o que nós entendemos como sendo o racional… mas nos Formulários o Success e o Failure são exatamente iguais ao Validade ou seja só deverão ser utilizados após o submit… por isso existem os demais eventos Before e After (Insert, Updtate e Delete)… depois de ler o manual entendi que os dois últimos são iguais ao primeiro… aliás o manual nem os cita, embora estejam lá - por isso a minha confusão. Diferentemente das apps Controle que, por não existir as opções Insert, Update e Delete, o funcionamento desses 3 eventos se dão efetivamente como nós imaginávamos que funcionem.

Valeu a atenção.

Forte Abraço.