Autor Tópico: Macro: sc_field_display()  (Lida 2060 vezes)

Jocimar

  • Expert
  • *****
  • Mensagens: 621
Macro: sc_field_display()
« Online: Agosto 14, 2013, 02:58:13 pm »
Olá pessoal,

Seguinte, utilizei a macro sc_field_display() no evento onScriptInit de um grid
No início estava utilizando para um campo (criado na mão), e funcionou como deveria, porém ao usar uma segunda vez esta macro, não funciona mais, ou seja, a macro não esconde nenhum dos dois campos que foram informados por esta macro para serem escondidas!, é como se a macro não existisse mais.

if (){
   sc_field_display({cnpj}, off);
   sc_field_display({nome}, off);
}


Versão do SC: 7.00.0018
Jocimar de Oliveira

jorgepopel

  • Expert
  • *****
  • Mensagens: 568
    • iCentro Tecnologia e Sistemas
    • Email
Re:Macro: sc_field_display()
« Responder #1 Online: Agosto 14, 2013, 03:23:50 pm »
Isso ocorre comigo também.
No grid a minha única saida é usar o botão que esconde/mostra colunas.
E isso não atende minha necessidade, assim como a sua.

jorge

Jocimar

  • Expert
  • *****
  • Mensagens: 621
Re:Macro: sc_field_display()
« Responder #2 Online: Agosto 14, 2013, 03:30:58 pm »
Obrigado pelo retorno Jorge,

Fiz mais alguns testes e funcionou na grid, como !!
Utilize a macro para deixar em on antes, independente da condição.
Depois, abra o IF() e utilize para off
Desta forma funcionou!

sc_field_display({cnpj}, on);
sc_field_display({nome}, on);
if (){
   sc_field_display({cnpj}, off);
   sc_field_display({nome}, off);
}

Att,

Jocimar
Jocimar de Oliveira

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Macro: sc_field_display()
« Responder #3 Online: Agosto 14, 2013, 05:00:06 pm »
Como dizia um velho professor meu da escola técnica:

"Para todo IF sempre tem que haver um ELSE!".


Jocimar

  • Expert
  • *****
  • Mensagens: 621
Re:Macro: sc_field_display()
« Responder #4 Online: Agosto 14, 2013, 05:22:30 pm »
Haroldo!

Acredito que este "velho professor" não conhecia o SC ...
Entendo que, se a ferramenta adiciona campos para o grid, então o mesmo é "on", nunca iniciar em "off" (ou será que existe if's a mais no SC ?), salvo o contrário. Mas, a ferramenta SC não é tão velha e sábia, e temos que testá-la para descobrir suas falhas, e assim contornar a situação, pois o evento não é onRecord e sim onScriptInit

Att,

Jocimar
Jocimar de Oliveira

jorgepopel

  • Expert
  • *****
  • Mensagens: 568
    • iCentro Tecnologia e Sistemas
    • Email
Re:Macro: sc_field_display()
« Responder #5 Online: Agosto 14, 2013, 05:46:31 pm »
Eu usava o comando nos eventos da quebra, funcionava de forma intermitente.

Mudei pra o evento onScriptInit e aparentemente está resolvido o problema.

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Macro: sc_field_display()
« Responder #6 Online: Agosto 15, 2013, 09:01:19 am »
Te explico porque acho que o ocorre isso. Não vejo como erro.

Primeiro. Se observar o código fonte da macro, variáveis em sessão são criadas para guardar o valor dessa flag. Se fechar a guia e abrir novamente a tela na mesma janela, a sessão se mantém e os campos surgirão como off.

Segundo. Evento onscriptinit é sempre executado quando acionado um evento ajax.

Meu professor não conhecia o SC, realmente, mas ele era muito sábio e tinha razão, Intrínseco ou não um IF sempre precisa ter a condição contrária, ou seja devemos pensar sempre no caso contrário, principalmente se tratando de um FrameWork.

Jocimar

  • Expert
  • *****
  • Mensagens: 621
Re:Macro: sc_field_display()
« Responder #7 Online: Agosto 15, 2013, 09:14:14 am »
Concordo discordando,

Se estou utilizando uma ferramenta onde adiciono um campo é para este ficar "on"!, então a ferramente têm que ter isto por padrão, salvo o contrário, onde entra a minha instrução, e caso a minha instrução mude este padrão então eu que terei que controlar!, porém a instrução está em onScriptInit. Neste caso o SC têm que estar preparado para resolver!, esquecendo do usuário da mesma, ela têm que resolver isto por padrão!

Att,

Jocimar
Jocimar de Oliveira

jackzsul

  • Novato
  • *
  • Mensagens: 24
Re:Macro: sc_field_display()
« Responder #8 Online: Setembro 09, 2014, 08:45:42 am »
também tenho problemas com (mais) essa macro.

ela até esconde o campo, mas não o mostra quando precisa.

o pior é que as vezes vc precisa fazer gatilhos pra tentar resolver um simples problema.