Hoje vou mostrar como resolver aqueles warnings de função nunca usada em fontes em MVC.
Se você desenvolve códigos MVC em AdvPL, já deve ter percebido que as funções estáticas ModelDef e ViewDef não são chamadas em nenhum lugar.
O motivo disso, é que nesse paradigma de programação, quem controla as chamadas é a uma camada mais abaixo, via StaticCall, por isso não precisamos nos preocupar em chamar as funções.
Porém em algumas versões do Protheus, ao compilar, no VSCode é exibido aquela mensagem de função nunca chamada (function never called).
Para resolvermos isso, é simples, a lógica seria mais ou menos assim:
- Na sua User Function, crie uma variável numérica, com o conteúdo por exemplo, igual a 1
- No fim dela, antes do Return, adicione um “dumb test”, testando se essa variável é igual a 0
- Dentro desse dumb, adicione as chamadas da ViewDef e da ModelDef
Então basicamente, o que fizemos foi criar uma variável com um conteúdo específico, e adicionar um if que nunca terá a condição como verdadeira, então nunca entrará dentro do conteúdo.
Abaixo um exemplo (note a variável nIgnore):
User Function zTSTA04() Local aArea := GetArea() Local oBrowse Local nIgnore := 1 Private aRotina := {} //Definicao do menu aRotina := MenuDef() //Instanciando o browse oBrowse := FWMBrowse():New() oBrowse:SetAlias(cTabPai) oBrowse:SetDescription(cTitulo) oBrowse:DisableDetails() oBrowse:DisableReport() //Ativa a Browse oBrowse:Activate() //Tratativa para ignorar warnings de ViewDef e ModelDef nunca chamados If nIgnore == 0 ModelDef() ViewDef() EndIf RestArea(aArea) Return Nil
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Pois é rapaz, boa idéia, grato!
Eu que agradeço pelo comentário Marco.
Grande abraço jovem.