Como Bloquear / Remover uma opção do Menu via Ponto de Entrada | Ti Responde 0071

No vídeo de hoje, vamos demonstrar em como remover uma opção de um menu num browse do Protheus.

A dúvida de hoje, nos perguntaram, se seria possível remover o botão Cancelar Baixa no Contas a Pagar via AdvPL (sem utilizar os recursos no Configurador).

 

Então montamos esse exemplo, onde através do ponto de entrada F750BROW, fazemos a busca pela rotina, e depois a removemos. Segue abaixo o vídeo exemplificando:

 

E abaixo o código fonte desenvolvido para exemplificar:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function F750BROW
Ponto de entrada logo após montar a variável private aRotina
@type  Function
@author Atilio
@since 15/11/2023
@see https://tdn.totvs.com/pages/releaseview.action?pageId=6071090
/*/

User Function F750BROW()
	Local aArea     := FWGetArea()
    Local cPesqSub  := "BAIXA MANUAL"
    Local cPesqItem := "CANC BAIXA"
    Local nPosSub   := 0
    Local nPosItem  := 0
    Local aSubMenu  := {}

    //Primeiro procura pelo submenu, escrito "Baixa Manual" (foi tirado o &, pois ele pode ficar em alguns textos de atalhos)
    nPosSub := aScan(aRotina, {|x| Upper(StrTran(AllTrim(x[1]), "&", "")) == cPesqSub})

    //Se encontrou o submenu
    If nPosSub > 0
        //Pega os itens desse submenu
        aSubMenu := aRotina[nPosSub][2]

        //Agora procura pelo item escrito "Canc Baixa" igual fizemos com o submenu
        nPosItem := aScan(aSubMenu, {|x| Upper(StrTran(AllTrim(x[1]), "&", "")) == cPesqItem})

        //Se encontrou o item, iremos apagar ele do submenu e depois redimensionar diminuindo o tamanho do submenu
        If nPosItem > 0
            aDel(aSubMenu, nPosItem)
            aSize(aSubMenu, Len(aSubMenu)-1)
        EndIf
    EndIf

    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.

 

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação