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

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.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação