MESTRE DETALHE, VERIFICAÇÃO - CAMPO(só falta isso pra concluir meu PROJETO!)

BOM DIA A TODOS OS AMIGOS,

ESTOU COM UMA ENORME DUVIDA VEJAM BEM !

TENHO UMA TABELA MASTER E UMA TABELA DETALHE

*TABELA MASTER
CODIGO_MASTER
STATUS_MASTER
NOME_MASTER

*TABELA DETALHE
CODIGO_DETALHE
MODELO_DETALHE

QUERO VERIFICAR O SEGUINTE. (TENHO UM NUMERO DETERMINADO DE “MODELO_DETALHE” QUE NÃO POSSO ESCOLHE QUANDO O STATUS_MASTER ESTIVE COMO ’ OCUPADO’

EXEMPLO:

STATUS_MASTER = OCUPADO
MODELO_DETALHE = ATX1


NESSE EXEMPLO ACIMA NÃO POSSO ADICIONAR EM OUTRO REGISTRO SE O STATUS_MASTER FOR IGUAL ‘OCUPADO’ SE O MODELO_DETALHE FOR TAMBÉM IGUAL ‘ATX1’.
SÓ PODERIA ADICIONAR OUTRO REGISTRO SE O STATUS_MASTER FOR IGUAL ‘LIBERADO’

COMO POSSO FAZER ISSO OU UMA OUTRA SOLUÇÃO PARA VERIFICAR ISSO

OBS!
SÓ FALTA ISSO PARA CONCLUÍR MEU PROJETO!
DESDE JÁ AGRADEÇO

Cara não sei se entendi direito o que vc precisa?

mas vamos lá!

O que você pode fazer é o seguinte, no formulário de detalhe, cria um evento Onchange para o campo CODIGO_DETALHE, ao mesmo ser alterado vc realiza um sc_lookup para identificar o status no formulario master e só retornar no campo o modelo que pode ser utilizado.

Outra opção, criar um evento onchange no campo modelodetalhe, e ao mesmo ser alterado vc valida o status no formulario mestre através do sc_lookup e mostra um SC_alert informando ao usuário quais os modelos permitidos, após isso atribui null ao campo para forçar o usuário a seleciona-lo novamente.

Caso não seja isso que esteja querendo, explica um pouco melhor o que deseja.

é isso mesmo, mais ainda tenho dúvida, vou tentar aqui

Qualquer coisa posta ai a dúvida!

se entendir direito voce deve criar um envento ajax para o campo STATUS_MASTER do tipo onchanger e colocar esse codigo dentro dele.

if ({STATUS_MASTER } == ‘OCUPADO’) // Display field
{
sc_error_message(" Ocupado, ");
sc_set_focus('STATUS_MASTER ');
sc_btn_display(‘new’, ‘off’); // desativa botao inserir
{MODELO_DETALHE} = ‘ATX1’ // se MODELO_DETALHE for um campo

}
else
{
sc_btn_display(‘new’, ‘on’);

}

Espero ter ajudado.

Att Arquimedes

Ajudou sim Arquimedes

Só tem alguns detalhes

SEU CÓDIGO.

STATUS_MASTER do tipo onchanger e colocar esse codigo dentro dele.

if ({STATUS_MASTER } == ‘OCUPADO’) // Display field
{
sc_error_message(" Ocupado, ");
sc_set_focus('STATUS_MASTER ');
sc_btn_display(‘new’, ‘off’); // desativa botao inserir
{MODELO_DETALHE} = ‘ATX1’ // se MODELO_DETALHE for um campo

}
else
{
sc_btn_display(‘new’, ‘on’);

}

O CAMPO "{MODELO_DETALHE} " é um campo que pode tem vários modelos por exemplo; ATX1, ATX2…
QUAL A LÓGICA QUE EU QUERO;
.QUANDO EU ADICIONAR , POR [size=10pt]EXEMPLO[/size] O MODELO [size=10pt]ATX1[/size] e mudar o estado ocupado
QUANDO FOR ADICIONAR OUTRO REGISTRO, SE FOR ADICIONADO ATX1 NOVAMENTE IRA DAR UMA MASSAGEM DIZENDO QUE MODELO SE ENCONTRAR OCUPADO., POSSIBILITANDO ASSIM ADICIONAR POR EXEMPLO OUTRO MODELO ATX2 OU ATX3 CASO.

TENDO OBSERVAÇÃO QUE TENHO DUAS TABELAS

*TABELA MASTER
CODIGO_MASTER
STATUS_MASTER
NOME_MASTER

*TABELA DETALHE
CODIGO_DETALHE
MODELO_DETALHE

Entendi, ja fiz algo parecido para atendimento.
Voce deve realizar no momento de selecionar um MODELO_DETALHE se o mesmo ja foi selecionar ou se estar disponivel é isso?

Att Arquimedes

O que quero fazer justamente que o aaguiar mencionou ,
como fazer?

Olá Italo,

Altere o campo Modelo_Detalhe para o Tipo Select e carregue nele todos os modelos existentes.

No evento onchange do campo, você vai fazer o seguinte:

sc_lookup(ds,“select status_master from pedido where pedido = {fkpedido}”)

$status = {ds[0][0]};

if ($status == ‘OCUPADO’)

   {


       if ({modelodetalhe} == 'ATX1')

      {

              {modelodetalhe} = null;

              sc_alert("Este modelo não é compatível com o status informado")

      }


   }

Isso é só uma ideia, adapte a sua realidade e se permanecer com dificuldade, poste aqui a estrutura das tabelas envolvidas neste processo.