Se na cláusula where não for encontrado nada, abrir formulário já em Novo Regist

(ramosinfo) #1

Quero que, se não for encontrado uma condição no SQL do formulário, seja aberto o formulário direto em um novo registro. Como fazer isso?

Exemplo, meu SQL a condição é:

CPF = ‘[CPF_INFORMADO]’ AND COD_PROCESSO_SELETIVO = ‘[COD_PROCESSO]’

Se não encontrar o CPF_INFORMADO então abrir em um novo registro. O COD_PROCESSO sempre vai encontrar, então é só o CPF_INFORMADO.

Obrigado.

(ramosinfo) #2

Estou tentando colocar no evento onRecord do filtro onde pesquiso o CPF o seguinte:

sc_lookup(meus_dados, “select CPF from CANDIDATO WHERE CPF = {CPF}”);
if ({meus_dados} === false){

echo "Erro de acesso. Mensagem = " . {meus_dados_erro};

}
elseif (empty({meus_dados})){
sc_redir(inscricao);

}
else{
sc_apl_conf(“inscricao”, “start”, “new”);
}

Mas mesmo assim, não vai…

Alguma luz?

(ZooSP) #3

Eu acho que vc está indo pelo caminho certo…

Crie um Formulário onde sempre que executado, ele inicie vazio. e faça o redir…

Eu acho que o problema está aqui "sc_apl_conf(“inscricao”, “start”, “new”); "

(ramosinfo) #4

Ainda tentando…

(ramosinfo) #5

Avancei um pouco.

Mudei de sc_lookup para sc_select e agora está funcionando melhor. Sempre que rodo a primeira vez, ele retorna correto, a segunda vez é que não, ele abre um novo registro, mesmo encontrando o CPF.

sc_select(meus_dados, “SELECT * FROM candidato WHERE CPF = {CPF} AND COD_PROCESSO_SELETIVO = ‘[COD_PROCESSO]’”);

if ({meus_dados} === false){

echo "Erro de acesso. Mensagem = " . {meus_dados_erro};

}
elseif (empty({meus_dados})){

sc_apl_conf(“inscricao”, “start”, “new”);
sc_redir(inscricao);

}
else{

[CPF_INFORMADO] = {CPF};
echo [CPF_INFORMADO];

}

if (empty([CPF_INFORMADO])){

echo “Variavel do CPF está vazia”;
sc_apl_conf(“inscricao”, “start”, “new”);
sc_redir(inscricao);

}
else{

Echo “A variavel de CPF NÃO está vazia”;

sc_redir(inscricao);

}

(ZooSP) #6

Deixa a comparação com apenas 2 iguais… ==

veja se consegue