BlackTDN Search

quinta-feira, 15 de janeiro de 2009

Protheus :: Programação Básica em Advpl “Combo XXII”

Funções:

As funções, em Advpl, podem ser entendidas como um mecanismo de sub-rotinas. Elas sempre retornam um valor. Uma função pode retornar qualquer tipo de dados ( array, numérico, string, objeto, lógico... ) e, se nenhum tipo de retorno for definido a função retornará NIL. Elas retornam seu valor como uma expressão após a instrução RETURN ( Obs.: a rotina chamadora da função não precisa, necessariamente, usar o valor de retorno ).

O uso adequado das funções possibilita a grande reutilização da codificação.

As funções são definidas uma só vez dentro de um programa, mas podem ser chamadas várias vezes. Elas podem ser definidas em qualquer ordem e você pode chamar uma antes de defini-la. Todas as funções são armazendas no Repositório de Objetos. E Podem ser declaradas como:

Públicas: Podem ser chamadas em qualquer programa:

Funções Reservadas ( Microsiga )

Function -> Reservado para desenvolvimento no ERP na Microsiga
Template Function -> Para a criação de Templates
Project Function -> Para a criação de Projetos

Funções Comuns ( Microsiga / Clientes usuários )

User Function -> Para criação de funções de usuário
Web Function -> Para criação de funções para uso na Web
Html Function -> Para criação de funções para uso na Web

Estáticas: Podem ser chamadas apenas no programa onde foram declaradas ( Static )

Static Function

Obs.: Consulte o Header ( arquivo de cabeçalho ) Protheus.ch ( \mp8\include\ para verificar os detalhes sobre o padrão de conversão das delcarações acima nas chamadas de função.

Parâmetros:

No Advpl, a forma de passagem de parâmetros para as funções é colocando os nomes dos parâmetros entre parênteses e delimitando-os por vírgula. Este método é conhecido como lista de parâmetros formais. Como em:

Function Teste( a , b , c )
User Function Teste( a , b , c )

Onde a, b, c são os parâmetros formais da função. O escopo destes parâmetros é Local ( tem visibilidade e duração enquanto durar a execução da função ).

Um comentário:

  1. web function e project function são de uso exclusivo da TOTVS, nós que estamos afora não temos permissão de compilação

    ResponderExcluir