Autor Tópico: O QUE HA DE ERRADO COM ESSE CÓDIGO! HELP!!!!!!! POR FAVOR  (Lida 1683 vezes)

italo2303

  • Iniciante
  • **
  • Mensagens: 97
O QUE HA DE ERRADO COM ESSE CÓDIGO! HELP!!!!!!! POR FAVOR
« Online: Julho 21, 2013, 08:38:51 pm »
OLÁ A TODOS

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   

 

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Á LIBERADA 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!
« Última modificação: Julho 21, 2013, 08:44:23 pm por italo2303 »

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re: O QUE HA DE ERRADO COM ESSE CÓDIGO! HELP!!!!!!! POR FAVOR
« Responder #1 Online: Julho 22, 2013, 12:34:12 am »
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!

italo2303

  • Iniciante
  • **
  • Mensagens: 97
Re: O QUE HA DE ERRADO COM ESSE CÓDIGO! HELP!!!!!!! POR FAVOR
« Responder #2 Online: Julho 22, 2013, 01:45:58 am »
Sim é isso mesmo! como faço isso ?  tentei já  o IF não deu certo , como você faria? 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.
« Última modificação: Julho 22, 2013, 02:01:03 am por italo2303 »

italo2303

  • Iniciante
  • **
  • Mensagens: 97
Re: O QUE HA DE ERRADO COM ESSE CÓDIGO! HELP!!!!!!! POR FAVOR
« Responder #3 Online: Julho 22, 2013, 07:23:34 pm »
?

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re: O QUE HA DE ERRADO COM ESSE CÓDIGO! HELP!!!!!!! POR FAVOR
« Responder #4 Online: Julho 22, 2013, 11:03:37 pm »
Será que um gatilho não resolveria isso? Como esta a estrutura de seu banco? (tabelas)
F. A.
Analista de Sistemas

italo2303

  • Iniciante
  • **
  • Mensagens: 97
Re: O QUE HA DE ERRADO COM ESSE CÓDIGO! HELP!!!!!!! POR FAVOR
« Responder #5 Online: Julho 23, 2013, 12:23:48 am »
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   

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re: O QUE HA DE ERRADO COM ESSE CÓDIGO! HELP!!!!!!! POR FAVOR
« Responder #6 Online: Julho 23, 2013, 11:50:31 am »
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.

italo2303

  • Iniciante
  • **
  • Mensagens: 97
Re: O QUE HA DE ERRADO COM ESSE CÓDIGO! HELP!!!!!!! POR FAVOR
« Responder #7 Online: Julho 24, 2013, 10:54:34 am »
Não entendi. como faço? coloque um exemplo por favor

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re: O QUE HA DE ERRADO COM ESSE CÓDIGO! HELP!!!!!!! POR FAVOR
« Responder #8 Online: Julho 24, 2013, 10:59:11 am »
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.
F. A.
Analista de Sistemas

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re: O QUE HA DE ERRADO COM ESSE CÓDIGO! HELP!!!!!!! POR FAVOR
« Responder #9 Online: Julho 24, 2013, 06:25:01 pm »
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.

gabrielsantos

  • Iniciante
  • **
  • Mensagens: 66
Re: O QUE HA DE ERRADO COM ESSE CÓDIGO! HELP!!!!!!! POR FAVOR
« Responder #10 Online: Julho 25, 2013, 01:14:39 pm »
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.

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....

italo2303

  • Iniciante
  • **
  • Mensagens: 97
Re: O QUE HA DE ERRADO COM ESSE CÓDIGO! HELP!!!!!!! POR FAVOR
« Responder #11 Online: Julho 25, 2013, 02:38:06 pm »
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.