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. Conforme exemplo abaixo:
User Function ChkExec() Local aArea := FWGetArea() Local lContinua := .T. Local cFuncao := Upper(ParamIXB) //Se vier da rotina Pedido de Veículos, habilita o uso de atalhos, devido a tela não ter ponto de entrada para manipular o menu If ("VEIXA050" $ cFuncao) SetKey(VK_F7, {|| u_zSuaFuncao()}) EndIf //Se vier da Rotina de Turnos, habilita o uso de atalhos, devido a tela não ter ponto de entrada para manipular o menu If ("GPEA080" $ cFuncao) SetKey(VK_F5, {|| u_zSuaFuncao()}) EndIf FWRestArea(aArea) Return lContinua
Continuando com o artigo original, 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.
Grande Atilio, obrigado pela força.
Eu que agradeço jovem pelo feedback.
Grande abraço.