20% OFF para compra e renovação →

Autor Tópico: Macro sc_btn_display só funciona no OnLoad  (Lida 128 vezes)

Americano

  • Novato
  • *
  • Mensagens: 23
Macro sc_btn_display só funciona no OnLoad
« Online: Novembro 09, 2018, 07:53:21 pm »
Boa noite srs. Dando prosseguimento aos problemas que venho encontrando na utilização de aplicação controle, preciso habilitar e desabilitar botões conforme a necessidade.
Utilizei a macro sc_btn_display no evento OnLoad para deixá-los desabilitados no início (sc_btn_display ('incluir_endereco', 'off')) e foi perfeito.
O problema é que em mais nenhum evento eu consigo habilitá-lo (sc_btn_display ('incluir_endereco', 'on '));
Agradeço a colaboração.

robertobru

  • Expert
  • *****
  • Mensagens: 546
    • Email
Re:Macro sc_btn_display só funciona no OnLoad
« Responder #1 Online: Novembro 09, 2018, 10:39:40 pm »
Realizei testes agora e não apresentou problema.
Pode postar seus códigos pra gente analisar, por favor?

Americano

  • Novato
  • *
  • Mensagens: 23
Re:Macro sc_btn_display só funciona no OnLoad
« Responder #2 Online: Novembro 09, 2018, 10:48:28 pm »
Boa noite Roberto. Segue o script:

Evento Onload:
sc_btn_display ('incluir_endereco', 'off');
sc_btn_display ('incluir_telefone', 'off');

Evento onValidateSuccess:
$sql  = "insert into empresa ( razao_social, nome_fantasia, cnpj, insc_municipal, insc_estadual, email,        tipos_societario_id_tipo_societario) values ( '{razao_social}', '{nome_fantasia}', '{cnpj}', '{inscricao_municipal}', '{inscricao_estadual}', '{email}', {tipo_societario})";

sc_exec_sql($sql);

sc_lookup(ds,"SELECT LAST_INSERT_ID()");

[vg_empresa] = {ds[0][0]};

sc_btn_display ('incluir_endereco', 'on'); // Aqui ele não habilita o botão incluir_endereco

É uma aplicação controle, onde só habilito o botão de incluir endereço após a inclusão da empresa. O mesmo se daria para telefone e responsável pela empresa.

Obrigado pela ajuda.

robertobru

  • Expert
  • *****
  • Mensagens: 546
    • Email
Re:Macro sc_btn_display só funciona no OnLoad
« Responder #3 Online: Novembro 10, 2018, 03:11:32 pm »
Essa aplicação não pode ser feita com formulário ?

Americano

  • Novato
  • *
  • Mensagens: 23
Re:Macro sc_btn_display só funciona no OnLoad
« Responder #4 Online: Novembro 10, 2018, 05:27:05 pm »
Boa tarde Roberto, novamente obrigado pela atenção.
No início fiz como form, mas devido a problemas encontrados e a navegação pelo controle ser mais eficiente, desisti de usar a form.
Na verdade só considero usar a form para tabelas de apoio ( uf, banco e etc..) ou pequenas atualizações.
Vou  relatar esse erro a NetMaker, pois pagamos muito caro para que pequenos problemas como esse, além de atrasar o desenvolvimento, não tenha sido visto por eles.
O que me deixa chateado é que a maioria dos problemas relatados não são de um grau de dificuldade grande, mas sim devido a bugs ou limitações da ferramenta.
Enquanto isso vamos quebrar a cabeça.
Abraços e obrigado

robertobru

  • Expert
  • *****
  • Mensagens: 546
    • Email
Re:Macro sc_btn_display só funciona no OnLoad
« Responder #5 Online: Novembro 10, 2018, 09:08:14 pm »
Correria por aqui.
Vou tentar postar algum exemplo semelhante com formulário nesse caso.
Outros Amigos aqui no fórum também ajudam muito, com certeza.

Americano

  • Novato
  • *
  • Mensagens: 23
Re:Macro sc_btn_display só funciona no OnLoad
« Responder #6 Online: Novembro 10, 2018, 10:37:41 pm »
Caro amigo. Esta macro, sc_btn_display,  só funciona no evento OnLoad, inclusive no form. Fiz um teste criando a form, como sugeriu, e o resultado foi o mesmo da aplicação controle. No evento onload ( form e controle) se você mandar desabilitar, der uma mensagem e logo após habilitar ele funciona. É como ele só executasse na carga da página, está faltando o "pulo do gato". Juntando isso ao problema da mensagem de campo obrigatório que relatei em outro tópico, fica difícil andar com o projeto. Estou o dia inteiro em cima desses dois problemas.
Novamente obrigado pela sua atenção.
Abraços

robertobru

  • Expert
  • *****
  • Mensagens: 546
    • Email
Re:Macro sc_btn_display só funciona no OnLoad
« Responder #7 Online: Novembro 11, 2018, 09:26:38 am »
Exemplo bem simples.
Espero que ajude.

if({vus[0][0]}!='1') {
   sc_field_display({userCod}, 'on');
   sc_btn_display('update', 'on');
   sc_block_display(block1, 'on');
}

else     {
   sc_field_display({userCod}, 'off');
   sc_btn_display('update', 'off');
    sc_block_display(block1, 'off');
}

Americano

  • Novato
  • *
  • Mensagens: 23
Re:Macro sc_btn_display só funciona no OnLoad
« Responder #8 Online: Novembro 11, 2018, 09:57:14 am »
Bom dia amigo.
Conforme expliquei no post anterior estas macro ( pelo menos no minha versão do sc 9.2 ), só funciona no evento OnLoad.
Em qualquer outro evento ou método em que eu precise alterar a propriedade do botão ele não surte efeito.
Obrigado.

Valdiney

  • Iniciante
  • **
  • Mensagens: 57
    • Email
Re:Macro sc_btn_display só funciona no OnLoad
« Responder #9 Online: Novembro 16, 2018, 08:59:42 am »
Olá Americano,

Realmente eu precisei fazer isso também e encontro problema. No meu caso é assim:
a) quando a tabela estiver vazia, o botão INCLUIR vai ficar visivel, então eu faço o teste no onLoad e o botão funciona, porém no momento que eu incluir, eu faço um outro teste no onAfterRecord para deixar esse mesmo botão invisivel, mas ele continua aberto.

b) o botão INCLUIR só fica invisivel se eu fechar o formulario e abrir novamente.
Acredito que no evento onAfterRecord eu preciso atualizar a tabela em memoria, algo assim, e fazer um novo teste, para depois aplicar essa macro.

Caso alguem puder nos ajudar, agradeço.

atc

Valdiney


Americano

  • Novato
  • *
  • Mensagens: 23
Re:Macro sc_btn_display só funciona no OnLoad
« Responder #10 Online: Novembro 16, 2018, 06:49:17 pm »
Caro Valdiney, bem vindo ao inexplicável mundo sc. Mas vamos lá, ontem esta macro começou a funcionar. Tentei descobrir o que eu tinha feito que que sugerisse a a volta dela funcionar. Como estava "empacado" nesse problema, não tinha feito mais nada nesta aplicação. A única coisa que me veio a cabeça foi o fato de ter exportado o projeto ( na tentativa de fazer de outra forma ) e importado-o novamente. Fiat Lux!!. Experimente exportar e importar novamente, pois ela tem de funcionar na form, na controle e onde o manual mostrar, pois é uma ferramenta paga e consta no manual.
Ps. Estou preparando um documento para a NeMaker explicando todos os problemas ( não são dúvidas ) que tenho enfrentado.
Forte abraço e nos informe se deu certo.