Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!

FUNCTION

Propósito

Definir ou declarar a utilização de uma função.

Sintaxe

[STATIC] FUNC[TION] [<nome>]

FUNC[TION] <nome>[(<tipo>)]

Argumentos

STATIC

declara uma função que só será invocada por rotinas descritas na mesma fonte.

<nome>

representa o nome da função definida.

<nome>[(tipo)]

representa o nome e o tipo da função declarada.

Utilização

Define que a fonte é de uma função de usuário e que será gerado um arquivo objeto após sua compilação. Este arquivo objeto terá o nome definido por <nome> mais a extensão ".o" (".obj" no MS-DOS) ou o nome da fonte com a extensão ".o" no lugar de ".f", quando <nome> não for definido.

Utilizam-se funções estáticas para limitar a visibilidade do nome da função, restringindo o acesso a esta e permitindo que um sistema seja composto de subsistemas específicos, sem a necessidade de batizar cada função com o nome diferente da outra.

Para se declarar que um programa utilizará uma função, basta utilizar o comando FUNCTION seguido do nome e o tipo da função.

O tipo pode ser omitido se a função for do tipo caractere.

Exemplo

O exemplo a seguir define uma função de usuário para ser guardada em uma biblioteca de objetos. Note pelo valor retornado, que se trata de uma função lógica.

$LIBRARY=bibfun.a         && Biblioteca que conterá o objeto da função

FUNC confirma         && Definição que o fonte e de uma função

** Inicio dos comandos da função

DO WHILE .T.

  WAIT "confirma s/n ? " TO resp

  IF resp $ "Nn"

    RETURN (.F.)     && Retorna falso.

  ELSEIF resp $ "Ss"

    RETURN (.T.)     && Retorna verdadeiro.

  ENDIF

ENDDO

O exemplo a seguir mostra a declaração e o uso da função confirma.

$LIBRARY=bibfun.a

PROG

FUNC confirma(l)     && Declara utilização da função confirma de tipo lógico

IF confirma()     && Executa a função confirma.

  ? "confirmou "

ELSE

  ? "não confirmou"

ENDIF

Consulte

DO, PARAMETERS, PROCEDURE, PROGRAM, &SC, &SD, &SF, &SL e &SN.

Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!