Olá pessoal…
Na vídeo aula de hoje, vou falar um pouco sobre tipos de Funções em AdvPL (User Function, Static Function, etc).
Abaixo os links do TDN sobre o assunto:
Function
Abaixo o código fonte utilizado para os testes (zTpFuncA.prw):
//Bibliotecas #Include "Protheus.ch" /*/{Protheus.doc} zTpFuncA Teste de Função de Usuário @type function @author Atilio @since 13/11/2015 @version 1.0 @example u_zTpFuncA() /*/ User Function zTpFuncA() Local aArea := GetArea() //Chamada de função padrão Mata010() //Chamada de função de usuário u_zTpFuncB() //Chamada de função estática no mesmo prw fTesteA() //Chamada de função estática de outro prw StaticCall(zTpFuncB, fTesteB, "Daniel") RestArea(aArea) Return /*-------------------------------------------------* | Função: fTesteA | | Autor: Daniel Atilio | | Data: 13/11/2015 | | Descr.: Função estática de teste | *-------------------------------------------------*/ Static Function fTesteA() Local aArea := GetArea() //Mostrando mensagem MsgInfo("Estou em uma função estática <b>(A)</b>!", "Atenção") RestArea(aArea) Return
E abaixo o fonte utilizado nos laços (zTpFuncB.prw):
//Bibliotecas #Include "Protheus.ch" /*/{Protheus.doc} zTpFuncB Teste de Função de Usuário @type function @author Atilio @since 13/11/2015 @version 1.0 @example u_zTpFuncB() /*/ User Function zTpFuncB() Local aArea := GetArea() //Mostra mensagem e chama função estática MsgInfo("Estou na função u_zTpFuncB()", "Atenção") fTesteB() RestArea(aArea) Return /*-------------------------------------------------* | Função: fTesteB | | Autor: Daniel Atilio | | Data: 13/11/2015 | | Descr.: Função estática de teste | *-------------------------------------------------*/ Static Function fTesteB(cPar1) Local aArea := GetArea() Default cPar1 := "" //Mostrando mensagem MsgInfo("Estou em uma função estática <b>(B)</b>, "+cPar1+"!", "Atenção") RestArea(aArea) Return /* Abaixo uma função de usuário com o nome similar com a função acima, porém ultrapassa 8 caracteres User Function zTpFuncB2() Return */ /* Abaixo uma função padrão, porém somente é possível compilar se tiver chave de compilação Function zTpFunPad() Return */
Se quiser fazer o download desses códigos, acesse nosso GitHub pelo link github.com/dan-atilio/AdvPL (Exemplos > Vídeo Aulas > 007 – Tipos de Funções).
Bom pessoal, por hoje é só.
Abraços e até a próxima.