AFIELDS()*
 Llena matrices con la estructura del fichero actual de base de datos
------------------------------------------------------------------------------
 Sintaxis

     AFIELDS([<aNombresCampo>], [<aTipos>],
        [<aAnchuras>], [<aDecimales>]) --> nCampos

 Argumentos

     <aNombresCampo> es la matriz que se va a llenar con los nombres de
     campo. Todos sus elementos son cadenas de caracteres.

     <aTipos> es la matriz que se va a llenar con los tipos de campo de
     <aNombresCampo>. Todos sus elementos son cadenas de caracteres.

     <aAnchuras> es la matriz que se va a llenar con las anchuras de los
     campos de <aNombresCampo>. Todos sus elementos son de tipo
     numérico.

     <aDecimales> es la matriz que se va a llenar con el número de
     decimales definido para los campos de <aNombresCampo>. Todos los
     elementos son de tipo numérico. Si el tipo del campo no es numérico, el
     elemento de <aDecimales> será cero.

 Devuelve

     AFIELDS() devuelve el número de campos o la longitud del argumento de
     matriz más corto, el que sea menor de los dos. Si no se especifican
     argumentos o no se está utilizando un fichero de base de datos en el
     área de trabajo actual, AFIELDS() devuelve cero.

 Descripción

     AFIELDS() es una función de matrices que llena una serie de matrices
     (de atributos de estructura) con la estructura del fichero de base de
     datos actualmente abierto, utilizando un elemento de cada matriz por
     campo. AFIELDS() actúa como ADIR(), que llena una serie de matrices
     existentes con información. Para utilizar AFIELDS(), primero debe crear
     las matrices que van a contener la información de la estructura de la
     base de datos. Todas las matrices deben tener el mismo número de
     elementos que de campos (es decir, FCOUNT()). Una vez que se hayan
     creado las matrices de atributos de estructura, puede invocar AFIELDS()
     para rellenar estas matrices con la información de cada campo.

     Por defecto, AFIELDS() opera en el área de trabajo actual. Para operar
     en un área de trabajo no seleccionada, debe especificarla con una
     expresión de alias (consulte el ejemplo siguiente).

     AFIELDS() es una función de compatibilidad y, por tanto, su utilización
     no es recomendable. Puede sustituirse por DBSTRUCT(), que no requiere
     la existencia de matrices antes de la invocación y devuelve una matriz
     multidimensional que contiene la estructura de fichero actual de base
     de datos.

 Ejemplos

      Este ejemplo muestra la forma de utilizar AFIELDS() y
        ACHOICE() simultáneamente para crear una lista de selección de
        campos:

        USE Ventas NEW
        PRIVATE aNombresCampo[FCOUNT()]
        AFIELDS(aNombresCampo)
        @ 1, 0 TO 10, 10 DOUBLE
        nSeleccion := ACHOICE(2, 1, 9, 9, aNombresCampo)
        @ 12, 0 SAY IF(nSeleccion != 0, aNombresCampo[nSeleccion],;
                         "Ninguno seleccionado")
        RETURN

      El ejemplo siguiente utiliza AFIELDS() con una expresión de
        alias para llenar matrices con la estructura del fichero Ventas.dbf,
        abierto en un área de trabajo no seleccionada:

        LOCAL aNombresCampo, aTipos, aAnchuras, aDecimales
        USE Ventas NEW
        USE Cliente NEW
        //
        aNombresCampo := Ventas->(ARRAY(FCOUNT()))
        aTipos := Ventas->(ARRAY(FCOUNT()))
        aAnchuras := Ventas->(ARRAY(FCOUNT()))
        aDecimales := Ventas->(ARRAY(FCOUNT()))
        //
        Ventas->(AFIELDS(aNombresCampo, aTipos, ;
                  aAnchuras, aDecimales))

 Ficheros   La biblioteca asociada es EXTEND.LIB.

 To download this example - click here.

See Also: ACHOICE() ADIR()* AEVAL() ASCAN() DBCREATE()