Como adicionar opções em uma rotina padrão sem ter ponto de entrada no MenuDef | Ti Responde 002

No vídeo de hoje, iremos responder a dúvida em como adicionar uma função no Outras Ações quando não existe ponto de entrada.

Hoje, a dúvida foi feita pelo grande Serinhano, onde ele perguntou como poderia adicionar opções na função FATA110 sendo que ela não possui ponto de entrada no Menu.

Então basicamente o que fazemos é criar uma User Function, que aciona o Menu, o Model e o View da função FATA110.

Obs.: Existe outra forma, no ponto de entrada ChkExec, daria para verificar com um If o nome da função, e depois adicionar um atalho via SetKey, por exemplo nas teclas F5, F6, F7, etc.

E isso é demonstrado no vídeo abaixo:

E abaixo o código fonte desenvolvido para exemplificar:

//Bibliotecas
#Include "TOTVS.ch"
#Include "FWMVCDef.ch"
  
/*/{Protheus.doc} zVid02
Função para "clonar" a função padrão FATA110 adicionando opções no Outras Ações
@author Atilio
@since 29/12/2021
/*/
  
User Function zVid02()
    Local oBrowse     := Nil  
    Private cCadastro := "Grupos de Clientes"
    Private aRotina   := FwLoadMenuDef("FATA110")
      
    //Talvez é necessário chamar aqui o SetFunName dependendo da rotina padrão
  
    //Adicionar a opção no menu padrão
    ADD OPTION aRotina TITLE "* Função Teste" ACTION 'Alert("teste")'    OPERATION 8    ACCESS 0
  
    //Abre o browse da rotina
    oBrowse := FWMBrowse():New()
    oBrowse:SetAlias('ACY')
    oBrowse:SetDescription(cCadastro)
    oBrowse:Activate()
Return
  
//Busca o Model da função FATA110
Static Function ModelDef()
Return FWLoadModel('FATA110')
  
//Busca o View da função FATA110
Static Function ViewDef()
Return FWLoadView('FATA110')

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan Atilio (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

2 Responses

  1. Alexandre Serinhano disse:

    Grande Atilio, obrigado pela força.

Deixe uma resposta