Vídeo Aula – AdvPL 007 – Tipos de Funções

Vídeo Aula – AdvPL 007 – Tipos de Funções

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
*/

Esses e outros códigos, estão disponíveis gratuitamente no nosso GitHub, acesse em github.com/dan-atilio/AdvPL.

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.

About Dan_Atilio

Analista e desenvolvedor de sistemas. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

Deixe uma resposta

%d blogueiros gostam disto: