Formulário Mestre-Detalhe

Fala Pessoal,

Olha eu novamente aqui pra aprender com vcs.
Tenho um formulário Mestre-Detalhe, e neste formulário,
ora o meu usuário, vai informar alguns valores, como totais no formulário Mestre,
ora, o usuário terá que digitar alguns itens para gerar esses totais.
Até ai, tudo bem !
Acontece que quando os valores forem digitados no mestre eu gostaria que o campo estivesse habilitado,
mas, quando ao usuário digitar no detalhe, esse campos totais no Mestre, devem ser desabilitados, uma vez que o total ira ser gerado pelo detalhe e não manualmente…

Questão :

Tenho usado no Onload do Mestre o seguinte codigo :

sc_lookup(mercadoria, “SELECT id_orcamento FROM orcamentos_mercadorias Where id_orcamento = {id_orcamento}”);

if(!empty({mercadoria})){
sc_field_disabled(“peso_cubado”);
sc_field_disabled(“qtd_volumes”);
sc_field_disabled(“volume”);
}else{
sc_field_disabled(“peso_cubado=false”);
sc_field_disabled(“qtd_volumes=false”);
sc_field_disabled(“volume=false”);
}
Tem funcionado corretamente…
Mas, qdo tenho lançamentos no detalhe e acabo excluindo todos, o campo não muda para disable…

Como faço para a partir do Detalhe para desabilitar um campo no formulário Mestre ?

vai ter q criar um metodo javascript no mestre chamado change_prop com f(x) vidd, modo
com o seguinte codigo:
if(modo == ‘desabilita’){
$(vidd).prop(‘disabled’, true);
}
if(modo == ‘habilita’){
$(vidd).prop(‘disabled’, false);
}

vai no detalhe
cria um metodo javascript chamado dh_mestre com f(x) vidd, modo
com o seguinte codigo:
parent.change_prop(vidd,modo);

no detalhe no evento que vc quiser para desabilitar ou habilitar campos do mestre cola isso:
sc_ajax_javascript(“dh_mestre”, array(’#id_do_campo_mestre’, ‘desabilita’));//para desabilitar
sc_ajax_javascript(“dh_mestre”, array(’#id_do_campo_mestre’, ‘habilita’));//para habilitar

prontinho.

1 Curtida

Cara valew mesmo ! Show de Bola…
E se fosse o Mestre querendo rodar uma macro do detalhe, como seria aproveitando a deixa…

acho que já captei…

Que estranho …
Quando crio um codigo Javascript o formulario fica cheio de modificações e o botão salvar não grava…

vc criou um método javascript no mestre?
colocou as f(x) corretamente?
pq o método javascript escreve uma função.
e a função não afeta em nada o resto do codigo.

Então achei muito estranho …
Sim criei,
A Função chamada change_prop os os dois parametros vidd e modo
Qdo vou rodar o formulario perde algumas configurações e na realidade nem precisa
escrever a função…
so a criação do javascript da esse erro ! ai pra voltar a funcionar tenho que apagar o methodo.
O que pode ser ?

qual versão do scriptcase vc está usando?

eu acho que o ctr+c ctr+v copiou com aspas diferentes do que o scriptcase usa.
tente reescrever a função toda, letra por letra e use aspas simples…
eu copiei do meu post acima e colei no meu sc e deu o mesmo erro que está acontecendo no seu.

1 Curtida

BLZ>>> vou tentar…

Consegui escrever todo o codigo, mas, ainda não deu certo… :frowning_face:

manda print então. pq aqui dá muito certo. rsrsrsrs

Lá vai…!

Sem%20t%C3%ADtulo|690x388

form_orcamentos tá tudo certo…
mas eu tive uma ideia melhor:
pode deletar o metodo change_prop no form_orcamentos.
vai no onLoad do form_orcamentos e cola isso depois do q vc tem escrito lá:

?>
<script>
function change_prop(vidd, modo){
	if(modo == ‘desabilita’){
		$(vidd).prop(‘disabled’, true);
	}
	if(modo == ‘habilita’){
		$(vidd).prop(‘disabled’, false);
	}
}
</script>
<?php

form_orcamento_mercadoria o metodo javascript não to vendo os f(x)…
me responda se é multiplo, grid editavel ou grid editavel view???

e no onAfterDelete apesar de vc não estar usando redir nem outro comando sql eu aconselho sempre usar um sc_commit_trans(); antes de executar coisas alheias, só por garantia.

tenho certeza q vai funcionar.

e outra coisa… vc ainda não me disse qual versão do scritpcase tá usando.

1 Curtida

Cara valew mesmo !
Muito Obrigado deu certo !

1 Curtida