Duvida Inativar botões Elimina e Elimina Faixa de Ordens

Discussão em 'EMS , HCM e Totvs 11' iniciado por Marcelo Goncalves, Setembro 5, 2025.

  1. Marcelo Goncalves

    Marcelo Goncalves Membro Participativo

    Bom dia pessoal!
    Após procurar soluções para problemas parecidos, venho novamente com uma dúvida:

    Tenho uma UPC atrelada à CP0301. Nela eu consigo inativar ou ativar os botões bt-del e bt-elim-faixa com sucesso, dependendo se o usuário pertence a um grupo de segurança.

    Mas.... Sempre que entro no Datasul e chamo a CP0301, na primeira vez estes botões aparecem ativados, mas assim que navego para outro registro, eles inativam, seguindo o que foi determinado na UPC) rsrs.Vou mostrar abaixo:
    Aqui, logo que entro no ERP e chamo a tela, eles aparecem ativos.
    upload_2025-9-5_12-0-7.png

    Após navegar para outro registro, eles ficam inativados, como manda a upc:
    upload_2025-9-5_12-1-24.png
    O engraçado é que, se eu fechar a CP0301 e abri-la novamente sem sair do ERP, obedece a upc, os botões permanecem inativados.

    Já tentei por dentro da upc executar o display, pular para o ultimo registro executando RUN pi-ultimo IN h_p-navega(pra ir para o último registro, porque daí já inativariam os botões), mas não funciona!
    Alguém poderia me dar uma dica? É um negocinho bobo mas tá dando trabalho!
    Agradeço desde já qualquer ajuda!
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Isso significa que o evento em que tu colocou o disable só ocorre na navegação, e não na abertura, verifica os eventos que resolve
  3. Marcelo Goncalves

    Marcelo Goncalves Membro Participativo

    De fato, na código minha chcagem estava no evento viewer, então, analisando a cp0301(que tem um emaranhado de eventos! rsrs), achei melhor colocar um message mostrando os eventos e objects tratados e achei o um evento no enable do container e depois de vários outros eventos, apareceu o initialize do conteiner, ativando os botões!
    Solucionei da seguinte forma:
    IF p-ind-event = "ENABLE" OR p-ind-event = "INITIALIZE" AND
    p-ind-object = "CONTAINER" AND
    p-wgh-object:FILE-NAME = "cpp/cp0301.w" THEN DO:

    após isso, consegui inativar os botões obedecendo os usuários do grupo de segurança.

    Obrigado pela dica Rafael!
    rafael.andrade curtiu isso.
  4. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Lembrando que se tem OR e AND no mesmo IF, tem que colocar parênteses, senão pode ter efeitos colaterais indesejados.
    então:
    IF (p-ind-event = "ENABLE" OR p-ind-event = "INITIALIZE") AND p-ind-object = "CONTAINER" AND p-wgh-object:FILE-NAME = "cpp/cp0301.w" THEN DO:
    Marcelo Goncalves curtiu isso.

Compartilhe esta Página