O QUE HA DE ERRADO COM ESSE CÓDIGO! HELP!!!!!!! POR FAVOR

OLÁ A TODOS

[size=12pt]MASTER DETALHE[/size]

TENHO 2 DUAS TABELAS : [size=12pt] TABELA MASTER ’ tbatendimento’ ,TABELA DETALHE ’ Add_viatura’[/size]

Tabela [size=12pt]Add_viatura[/size]
.codigo_add
.viatura_add
.tbatendimento_codigo_atendimento

Tabela [size=12pt]tbatendimento[/size]
.codigo_atendimento
.status_atendimento
[size=12pt]tbatendimento_codigo_atendimento[/size] é chave estrangeira

QUAL É A IDEIA ?

É QUANDO EU ESCOLHER DETERMINADA VIATURA NO CAMPO ‘viatura_add’ EXECUTAR CÓDIGO ABAIXO:

CÓDIGO:
sc_lookup(rs,“SELECT tbatendimento.status_atendimento,tbatendimento.codigo_atendimento,
add_viatura.viatura_add,add_viatura.tbatendimento_codigo_atendimento
FROM
tbatendimento,
add_viatura
WHERE
add_viatura.viatura_add=’{viatura_add}’
AND tbatendimento.status_atendimento =‘Em atendimento’”);
if(!empty({rs[0][0]}))
{
sc_error_message(“Viatura em ocorrência, selecione outra viatura”);
sc_btn_display(‘insert’, ‘off’);
}
else
{
sc_btn_display(‘insert’, ‘on’);
}

EXECUTAR UMA BELEZA ATÉ AÍ TUDO BEM ;

O QUE EU QUERO É ;
QUANDO SELECIONAR UMA VIATURA NO CAMPO ‘{viatura_add}’ VERIFICAR SE A VIATURA ESTA EM ATENDIMENTO OU LIBERADA!

QUANDO CADASTRO O 1° REGISTRO COM UMA VIATURA ‘X’ FICA OK. LOGO COLOCO O status_atendimento “EM ATENDIMENTO”.
QUANDO CADASTRO OUTRO REGISTRO COM A MESMA VIATURA ‘X’ LOGO É DADO A MENSAGEM :‘Viatura em ocorrência, selecione outra viatura’ OK, FICA BELEZA.

AGORA CADASTRO O REGISTRO MUDANDO A VIATURA PARA ‘Y’ FICA OK .

AGORA O DETALHE QUE ESTÁ ME DEIXANDO LOUCO!

QUANDO CADASTRO OUTRO REGISTRO COM A VIATURA JÁ [size=12pt]LIBERADA[/size] POR EXEMPLO VIATURA ‘X’
CONTINUA A MENSAGEM:‘Viatura em ocorrência, selecione outra viatura’.

OBS: A VIATURA ‘{viatura_add}’ ESTA EM UM CAMPO SELEÇÃO É ESCOLHIDA NO MOMENTO DO CADASTRO DO REGISTRO.

PERCEBI QUE PROVAVELMENTE O ERRO ESTÁ NA PARTE DO CÓDIGO:

WHERE
add_viatura.viatura_add=’{viatura_add}’
AND tbatendimento.status_atendimento =‘Em atendimento’");

TALVEZ AQUI :tbatendimento.status_atendimento =‘Em atendimento’");, JÁ TENTEI TUDO E NADA DAR CERTO

ALGUM COLEGA PODE ME DAR A SOLUÇÃO CORRETA.

DESDE JÁ AGRADEÇO!

Cara tira do where essa parte “AND tbatendimento.status_atendimento =‘Em atendimento’”);", porque a condição é ao escolher a viatura disparar a mensagem ou não então você não precisa desse where você precisa de um if testando o retorno do select se o tbatendimento.status_atendimento =‘Em atendimento’".

Isso foi o que eu entendi, me corrija se não estiver entendendo!

Sim é isso mesmo! como faço isso ? tentei já o IF não deu certo , [size=10pt]como você faria?[/size] porque eu não tive sucesso.

Só tem um DETALHE!

Posso ter, por exemplo;

.Uma viatura X ‘Em atendimento’, como também uma viatura Y ‘Em em atendimento’,
o que não pode acontecer e eu escolher uma viatura X ‘Em atendimento’, ou uma viatura Y ‘Em em atendimento’, pois será disparado a mensagem:“Viatura em ocorrência, selecione outra viatura”.
Seria possível escolher uma viatura somente quando essa viatura X ou Y estive LIBERADA em relação seu STATUS quando seleciono VIATURA ‘{viatura_add}’ ( no caso a viatura)

Eu quero uma demonstração por que fiz de várias formas e não conseguir.

?

Será que um gatilho não resolveria isso? Como esta a estrutura de seu banco? (tabelas)

MASTER DETALHE

TENHO 2 DUAS TABELAS : TABELA MASTER ’ tbatendimento’ ,TABELA DETALHE ’ Add_viatura’

Tabela Add_viatura
.codigo_add
.viatura_add
.tbatendimento_codigo_atendimento

Tabela tbatendimento
.codigo_atendimento
.status_atendimento
tbatendimento_codigo_atendimento é chave estrangeira

Cara o mais fácil já que você não pode escolher uma viatura que esta em atendimento é filtrar no campo viatura_add que imagino ser um Select, tipo filtra pra mostrar só as viaturas que não estão em atendimento, você resume seu código e evita erros.

Não entendi. como faço? coloque um exemplo por favor

Pelo que entendi, o que Saulo quis dizer é que você ponha um “WHERE” especificando o tipo de viatura na sua cláusula no campo (se for do tipo “Select”). Onde traria apenas as viaturas especificas.

Exatamente!! Coloque o campo como tipo select e no lookup do campo faça o filtro com where para trazer apenas as viaturas que não estão em atendimento, assim você mata o problema e diminui o código e validações.

Era o que eu ia falar também… já filtra no lookup do campo… assim nem aparecerá as viaturas que estiverem “Em Atendimento”, coloca uma cláusula where no lookup…

Eu precisaria era de um 'sc_lookup(rs, $check_sql); conforme o exemplo de login , pq o o campo lookup já puxo de uma ouutra tabela para grava Tabela Add_viatura

Vi um exemplo “sc_lookup(rs, $check_sql)’” eu não estou é sabendo montar essa relação.