[Resolvido] Problema com filtro com campo obrigatório

Boa tarde.
Numa consulta, tenho um filtro com somente um campo, sendo este obrigatório. Este campo possui título. O conteúdo deste filtro é carregado num campo select, e é multivalorado.
Quando, inadvertidamente, alguém clica no título e depois no botão pesquisar, o scriptcase não interpreta que o que foi clicado foi o título, e não o conteúdo do campo, não criticando a obrigatoriedade do campo e indo para a grid.
Já tentei resolver a situação de diversas formas, sendo que a última foi tentando barrar essa situação no OnValidate, mas não obtive sucesso.
Alguém teria uma sugestão?

teste o valor do campo no evento onvalidate do flltro.

Haroldo, essa tinha sido minha última tentativa, mas verifiquei que o código não entra no IF:

if ({id_projeto} == ‘’ or {id_projeto} == null) {
sc_error_message(‘Favor informar o projeto’);
sc_error_exit();
}

tente usar empty:

if (empty({id_projeto})) {
   sc_error_message(‘Favor informar o projeto’);
   sc_error_exit();
}

Também não funcionou, pois o array que contém o campo é inicializado.
Coloquei o var_dump e ele apresenta o seguinte: array(1) { [0]=> string(0) “” }
Tentei também utilizar o count, mas o retorno é 1, e não 0.

$i  = 0;

foreach({id_projeto} as $value) {
   if (empty($value)) $i++
}

if ($i) {
   sc_error_message(‘Favor informar o projeto’);
   sc_error_exit();
}

Haroldo, este código consegue detectar quando somente o título está clicado, mas tentei utilizar tua sugestão com algumas variações, tentando o ISSET e outras funções para array, porque sempre dá o mesmo erro:

“PDO::quote() expects parameter 1 to be string, array given”

coloca em modo debug sua aplicação.

se eu estou testando vazio deveria ser não clicado.

Faz desse jeito

if(empty({nome_seu_campo}[0]))
{
sc_error_message(“Campo Obrigatório”);
}

Haroldo,
coloquei no debug do firefox, e o único erro apresentado é: “SyntaxError: expected expression, got ‘<’”, indicando a linha 116 do código. A linha 116 possui o seguinte:

Erro

Já no debug do scriptcase, o erro apresentado é:

Atenção
PDO::quote() expects parameter 1 to be string, array given

Script: /opt/NetMake/v9/wwwroot/scriptcase/prod/third/adodb/drivers/adodb-pdo.inc.php (507)

lucasmatsumoto,
o código que você sugeriu apresenta o seguinte erro:

Atenção
PDO::quote() expects parameter 1 to be string, array given

Script: /opt/NetMake/v9/wwwroot/scriptcase/prod/third/adodb/drivers/adodb-pdo.inc.php (507)

colocou no onvalidate?
qual o nome do seu campo? não era pra dar erro…

no onvalidate coloca assim e vê oque retorna

print_r({nome_seu_campo});
sc_error_message(‘teste’);

manda um print ai.

verifica se o seu campo está assim…

Array ( [0] => )

Esté é o retorno do código abaixo no OnValidate do filtro:

print_r({id_projeto});
sc_error_message(‘Campo obrigatorio’);

A única coisa que estava diferente é que o limitador estava com “;”, mas mudei para “,” e o mesmo erro ocorreu.

comenta todos os códigos do validate se tiver e deixa só esse

if(empty({id_projeto}[0]))
{
sc_error_message(‘Campo Obrigatório’);
}

no seu select usa () no distinct

tipo assim SELECT DISTINCT(id), nome

lucasmatsumoto, agora funcionou.
O que estava causando o erro era o sc_error_exit() após o sc_error_message.
Muito obrigado!

1 Curtida