Mensagem de erro que não executa em Botão

Criei um botão em um Formulário. Botão tipo Ajax.
Ao clicar nesse botão se um campo não estiver preenchido (nulo) então deverá exibir uma mensagem.
Este é o código que está no botão:

$erro1 = {datent} == null;
$msg1 = “Você não pode gerar as parcelas sem data de entrega!”;
if ($erro1)
{
sc_error_message($msg1);
sc_error_exit();
}

Também já utilizei o seguinte código:

if ({datent} == null) {
sc_error_message(“Você não pode gerar as parcelas sem data de entrega!”);
sc_error_exit();
}

Em nenhum caso a mensagem é executada. È necessário executar alguma configuração para que as mensagens de erro sejam executadas?

Tente:

if (empty({datent})){
… sua rotina
}

Oi Thyago.
Tentei também. Coloquei echo para me garantir que realmente o “conteúdo” do campo {datent} é nulo e realmente é null.
Porém, nada acontece. A mensagem de erro não aparece.

Primeiro no botão coloque somente um teste para ver como internamente esta a data:
echo 'Data = '.{datent};

ela pode estar nula mas vindo como ‘0000-00-00’;
Ai o código que você deveria usar seria este:

if (empty({datent}) OR {datent}=='0000-00-00') {
	sc_alert('Você não pode gerar as parcelas sem data de entrega!!');
} else {
    // Aqui coloque seu código para ser executado com data preenchida.
}

Obrigado pela resposta, Jailton.
O campo tem “conteúdo” null. Já testei.
Vou testar com o sc_alert que vc colocou ao invés do sc_error_message que tenho utilizado.
outra coisa que estou testando é se tem diferença entre um botão tipo Ajax ou PHP.

Nada. Testei esse código tanto em botão Ajax quanto em botão PHP, sendo que neste último o resultado é ainda pior, abrindo uma outra página com um pequeno botão OK que uma vez clicado retorna para página origem.

Teste com esse código:

$_ValidarData = {CadastroData};

if (date("Y-m-d", strtotime($_ValidarData)) == date($_ValidarData)) {
	echo 'Executou!!';
} else {
    sc_alert('Você não pode gerar as parcelas sem data de entrega!!');
}

Aqui funciona normal:

Scriptcase: 9.4.025
Versão 80.0.3987.149 (Versão oficial) 64 bits

Depois de várias alterações acabei descobrindo que duas macros não funcionam: a sc_error_message e a sc_error_exit, funcionando apenas para exibição da mensagem a sc_alert, desde que usando a macro sc_date_ empty.
Porém, se eu coloco outro if para checar o conteúdo do campo {valor} que não pode ser zero, só essa checagem exibe mensagem e a checagem anterior da data não é realizada.

Veja o código que tenho utilizado:
(este código só checa o campo valor e despreza a checagem do campo data. Se eu comentar o codigo de checagem do campo valor, então a checagem do campo data volta a acontecer).

Coloquei um sc_ajax_message no botão Ajax e funcionou tb. sc_lookup(dataset,“select datent, valor FROM requisicao WHERE codigo = {codigo}”);

if(empty({dataset[0][0]}) or ({dataset[0][1]} == 0)){
$mensagem = “Data Entrada ou valor não tem um campo válido !”;
sc_ajax_message ($mensagem, “Ops Verifique”, “timeout=20”);
}

O botão dele não deve ser Ajax, por isso não está funcionando.

Thyago, o botão é Ajax.
Aninha Datasil, o sc_ajax_message funciona enquanto alerta, tal e qual o sc_alert, porém, ele não faz o break como o sc_error_message com o sc_error_exit fazem.
Recebi resposta do suporte scriptcase de que isso é um bug que será passado à equipe que cuida disso.
Enquanto isso, vou me virando no onValidate pois lá, funciona.
Obrigado pela atenção! Aguardemos e oremos.

Salve Thyago! O botão é Ajax. Disse isso logo na primeira descrição do problema. Tentei utilizar um botão tipo PHP, porém, ele tem o inconveniente de mudar de página ao exibir as mensagens de erro.