AFIELDS()*
 Preenche vetores com a estrutura do arquivo de banco de dados corrente
------------------------------------------------------------------------------

 Sintaxe

     AFIELDS([<aNomesCampo>], [<aTipos>],
        [<aTamanhos>], [<aDecimais>]) --> nCampos

 Argumentos

     <aNomesCampo> é o vetor a ser preenchido com os nomes dos campos.
     Cada elemento é uma cadeia de caracteres.

     <aTipos> é o vetor a ser preenchido com o tipo dos campos em
     <aNomesCampo>.  Cada elemento é uma cadeia de caracteres.

     <aTamanhos> é o vetor a ser preenchido com os tamanhos dos campos
     em <aNomesCampo>.  Cada elemento é numérico.

     <aDecimais> é o vetor a ser preenchido com a quantidade de decimais
     definidos para os campos em <aNomesCampo>.  Cada elemento é numérico.
     Caso o tipo de campo nao seja numérico, o elemento <aDecimais> é zero.

 Retorno

     AFIELDS() retorna a quantidade de campos ou o tamanho do menor
     argumento do vetor, valendo o que for menor.  Se nao for especificado
     nenhum argumento, ou caso nao haja arquivo em uso na área de trabalho
     corrente, AFIELDS() retorna zero.

 Descriçao

     AFIELDS() é uma funçao de tratamento de vetor que preenche uma série de
     vetores com a estrutura do arquivo de banco de dados aberto no momento,
     sendo um elemento em cada vetor por campo.  AFIELDS() funciona da mesma
     forma que ADIR(), preenchendo uma série de vetores existentes com
     informaçoes.  Para utilizar AFIELDS(), você deve primeiramente criar os
     vetores que conterao as informaçoes sobre a estrutura do banco de
     dados, sendo que a quantidade de elementos deve ser a mesma que a
     quantidade de campos (ou seja, FCOUNT()).  Uma vez criados os vetores
     com atributos de estrutura, você pode invocar AFIELDS() para preencher
     os vetores de estrutura com as informaçoes sobre cada campo.

     O padrao de AFIELDS() é operar na área de trabalho correntemente
     selecionada.  Pode-se fazer esta funçao operar em uma área de trabalho
     nao selecionada se esta área de trabalho for especificada dentro de uma
     expressao com alias (veja o exemplo abaixo).

     AFIELDS() é uma funçao de compatibilidade e portanto desaconselhada.
     Ela está superada por DBSTRUCT(), que nao requer a existência de
     qualquer vetor antes da invocaçao e retorna um vetor multi-dimensional
     que contém a estrutura do arquivo de banco de dados corrente.

 Exemplos

       O exemplo a seguir demonstra como AFIELDS() e ACHOICE() podem
        ser utilizados em conjunto para criar uma lista de seleçao de
        campos:

        USE Sales NEW
        PRIVATE aFieldNames[FCOUNT()]
        AFIELDS(aFieldNames)
        @ 1, 0 TO 10, 10 DOUBLE
        nChoice := ACHOICE(2, 1, 9, 9, aFieldNames)
        @ 12, 0 SAY IF(nChoice != 0, aFieldNames[nChoice],;
           "Nenhum selecionado")
        RETURN

       Este exemplo utiliza AFIELDS() com uma expressao alias para
        preencher vetores com a estrutura do arquivo Sales.dbf, aberto em
        uma área de trabalho nao selecionada:

        LOCAL aFieldNames, aTypes, aSizes, aDecimals
        USE Sales NEW
        USE Customer NEW
        //
        aFieldNames := Sales->(ARRAY(FCOUNT())
        aTypes := Sales->(ARRAY(FCOUNT())
        aSizes := Sales->(ARRAY(FCOUNT())
        aDecimals := Sales->(ARRAY(FCOUNT())
        //
        Sales->(AFIELDS(aFieldNames, aTypes, aSizes, aDecimals))

 Arquivos:  Biblioteca EXTEND.LIB.
 To download this example - click here.

See Also: DBCREATE() DBSTRUCT() FCOUNT() FIELD() LEN() TYPE()