> For the complete documentation index, see [llms.txt](https://doc.velneo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.velneo.com/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md).

# VTableInfo

Las funciones de esta clase permiten acceder a la información de la estructura de una tabla.

Tiene funciones generales de la tabla, como ver su id o su tipo, y funciones para obtener información de sus subobjetos: campos, indices e históricos.

También nos permite obtener otros VTablaInfo de las tablas enlazadas como maestros o históricos.

## Indice de funciones

### **De tabla**

String [comments](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#comments)()

String [id](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#id)()

String [idRef](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#idref)()

Boolean [isInMemory](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#isinmemory)()

&#x20;String [name](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#name)()

Number [registerLength](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#registerlength)()

String [singleName](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#singlename)()

Number [type](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#type)()

### **De campos**

Number [fieldBindType](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fieldbindtype)( Number nCampo )

String [fieldBoundedTableId](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fieldboundedtableid)( Number nCampo )

VTableInfo [fieldBoundedTableInfo](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fieldboundedtableinfo)( Number nPlural )

Number [fieldBufferLen](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fieldbufferlen)( Number nCampo )

String [fieldComments](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fieldcomments)( Number nCampo )

String [fieldComments](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fieldcomments)( String szIdCampo )

Number [fieldCount](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fieldcount)()

Number [fieldDecimals](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fielddecimals)( Number nCampo )

String [fieldId](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fieldid)( Number nCampo )

Boolean [fieldIsSigned](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fieldissigned)( Number nCampo )&#x20;

Number [fieldMaximumValue](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fieldmaximumvalue)( Number nCampo )

Number [fieldMinimumValue](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fieldminimumvalue)( Number nCampo )

String [fieldName](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fieldname)( Number nCampo )

String [fieldName](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#string-fieldname-number-ncampo-number-nlenguaje-number-npais0-)( Number nCampo, Number nLenguaje, \[Number nPais=0] )

String [fieldName](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#string-fieldname-string-szidprimariocampo-)( String szIDPrimarioCampo )

String [fieldName](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#string-fieldname-string-szidprimariocampo-number-nlenguaje-number-npais0-)( String szIDPrimarioCampo, Number nLenguaje, \[Number nPais=0] )

Number [fieldObjectType](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fieldobjecttype)( Number nCampo )

String [fieldParentFieldId](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fieldparentfieldid)( Number nCampo )

Number [fieldParentFieldNumber](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fieldparentfieldnumber)( Number nCampo )

Number [fieldType](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#fieldtype)( Number nCampo )

### **De índices**

Number [indexCount](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#indexcount)()

String [indexId](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#indexid)( Number nIndex )

String [indexName](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#indexname)( Number nIndex )

Number [indexType](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#indextype)( Number nIndex )

### **De históricos**

String [pluralBoundedIndexId](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#pluralboundedindexid)( Number nPlural )

VObjectInfo [pluralBoundedIndexInfo](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#pluralboundedindexinfo)( Number nPlural )

String [pluralBoundedTableId](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#pluralboundedtableid)( Number nPlural )

VTableInfo [pluralBoundedTableInfo](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#pluralboundedtableinfo)( Number nPlural )

Number [pluralCount](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#pluralcount)()

String [pluralId](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#pluralid)( Number nPlural )

String [pluralName](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#pluralname)( Number nPlural )

### **De localizadores por Id**

Number [findField](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#findfield)( String szIDPrimarioCampo )

Number [findIndex](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#findindex)( String szIDPrimarioIndice )

Number [findPlural](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo.md#findplural)( String szIDPrimarioHist )

## Documentación de funciones

### Funciones de tabla

#### String comments() <a href="#comments" id="comments"></a>

Devuelve el valor de la propiedad comentarios de la tabla.

Esta función se ha incorporado al API a partir de la versión 7.14

#### String id() <a href="#id" id="id"></a>

Devuelve el identificador de la tabla. Por ejemplo: "CLIENTES".

#### String idRef() <a href="#idref" id="idref"></a>

Devuelve el idRef (Alias\_Aplicación/Id\_Tabla) de la tabla. Por ejemplo: "ERP/CLIENTES".

#### Boolean isInMemory() <a href="#isinmemory" id="isinmemory"></a>

Devuelve true si la tabla reside en memoria.

#### String name() <a href="#name" id="name"></a>

Devuelve el nombre plural de la tabla en el idioma configurado. Si no se especifican valores asume el idioma en curso. El código de país es opcional.

Parámetros:

* nLenguage: código del idioma. Ver tabla de idiomas en documentación de Qt.
* nPais: código del país. Ver tabla de idiomas en documentación de Qt.

#### Number registerLength() <a href="#registerlength" id="registerlength"></a>

Devuelve la longitud en bytes del registro de la tabla.

#### String singleName() <a href="#singlename" id="singlename"></a>

Devuelve el nombre singular de la tabla.

#### Number type() <a href="#type" id="type"></a>

Devuelve el código de tipo de tabla. Ver [enum de tipos de tablas](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo/vtableinfo-enumeraciones.md#tipos-de-tablas).

### Funciones de campos

#### Numer fieldBindType( Number nCampo ) <a href="#fieldbindtype" id="fieldbindtype"></a>

Devuelve el tipo de enlace del campo. Ver [enum de tipos de enlaces de campo](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo/vtableinfo-enumeraciones.md#tipos-de-campo).

Parámetros:

* nCampo: número de campo, el primero es el 0.

#### String fieldBoundedTableId( Number nCampo ) <a href="#fieldboundedtableid" id="fieldboundedtableid"></a>

Devuelve el identificador de la tabla enlazada.

Parámetros:

* nCampo: número de campo, el primero es el 0.

#### VTableInfo fieldBoundedTableInfo( Number nPlural ) <a href="#fieldboundedtableinfo" id="fieldboundedtableinfo"></a>

Devuelve un objeto de la clase VTableInfo de la tabla enlazada.

Parámetros:

* nPlural: número ordinal del plural en la tabla.

#### Number fieldBufferLen( Number nCampo ) <a href="#fieldbufferlen" id="fieldbufferlen"></a>

Devuelve el tamaño en bytes de los caracteres que admite el buffer del campo. Por ejemplo un campo Alfa40 de 2 bytes de buffer, que puede almacenar 3 caracteres, devolverá 2.

Parámetros:

* nCampo: número de campo, el primero es el 0.

#### String fieldComments( Number nCampo ) <a href="#fieldcomments" id="fieldcomments"></a>

Devuelve el valor de la propiedad comentarios del campo.

Parámetros:

* nCampo: número de campo, el primero es el 0.

#### String fieldComments( String szIdCampo ) <a href="#fieldcomments" id="fieldcomments"></a>

Devuelve el valor de la propiedad comentarios del campo.

Parámetros:

* szIdCampo: identificador del campo.

Esta función se ha incorporado al API a partir de la versión 7.14

#### Number fieldCount() <a href="#fieldcount" id="fieldcount"></a>

Devuelve el número de campos del registro de la tabla.

#### Number fieldDecimals( Number nCampo ) <a href="#fielddecimals" id="fielddecimals"></a>

Devuelve el nº de decimales de un campo numérico.

Parámetros:

* nCampo: número de campo, el primero es el 0.

#### String fieldId( Number nCampo ) <a href="#fieldid" id="fieldid"></a>

Devuelve el identificador del campo.

Parámetros:

* nCampo: número de campo, el primero es el 0.

#### Boolean fieldIsSigned( Number nCampo ) <a href="#fieldissigned" id="fieldissigned"></a>

Devuelve true si el campo numérico admite signo.

Parámetros:

* nCampo: número de campo, el primero es el 0.

#### Number fieldMaximumValue( Number nCampo ) <a href="#fieldmaximumvalue" id="fieldmaximumvalue"></a>

Devuelve el valor máximo de un campo numérico.

Parámetros:

* nCampo: número de campo, el primero es el 0.

#### Number fieldMinimumValue( Number nCampo ) <a href="#fieldminimumvalue" id="fieldminimumvalue"></a>

Devuelve el valor mínimo de un campo numérico.

Parámetros:

* nCampo: número de campo, el primero es el 0.

#### String fieldName( Number nCampo ) <a href="#fieldname" id="fieldname"></a>

Devuelve el nombre del campo.

Parámetros:

* nCampo: número de campo, el primero es el 0.

#### String fieldName( Number nCampo, Number nLenguaje, \[Number nPais=0] )

Devuelve el nombre del campo en el idioma y país especificados en los parámetros.

Parámetros:

* nCampo: número de campo, el primero es el 0.
* nLenguaje: número que corresponde al código del lenguaje (Tabla de código Qt).
* nPais: número que corresponde al código del país (Tabla de códigos Qt).

#### String fieldName( String szIDPrimarioCampo )

Devuelve el nombre del campo.

Parámetros:

* szIDPrimarioCampo: identificador del campo.

#### String fieldName( String szIDPrimarioCampo, Number nLenguaje, \[Number nPais=0] )

Devuelve el nombre del campo en el idioma y país especificados en los parámetros.

Parámetros:

* szIDPrimarioCampo: identificador del campo.
* nLenguaje: número que corresponde al código del lenguaje (Tabla de código Qt).
* nPais: número que corresponde al código del país (Tabla de códigos Qt).

#### Number fieldObjectType( Number nCampo ) <a href="#fieldobjecttype" id="fieldobjecttype"></a>

Devuelve el tipo de objeto de un campo objeto. Ver [enum de tipos de campos objeto](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vtableinfo/vtableinfo-enumeraciones.md#tipos-de-campos-objeto).

Parámetros:

* nCampo: número de campo, el primero es el 0.

#### String fieldParentFieldId( Number nCampo ) <a href="#fieldparentfieldid" id="fieldparentfieldid"></a>

Devuelve el identificar del campo padre de una tala submaestra.

Parámetros:

* nCampo: número de campo, el primero es el 0.

#### Number fieldParentFieldNumber( Number nCampo ) <a href="#fieldparentfieldnumber" id="fieldparentfieldnumber"></a>

Devuelve el número de campo del campo padre de una tala submaestra.

Parámetros:

* nCampo: número de campo, el primero es el 0.

#### Number fieldType( Number nCampo ) <a href="#fieldtype" id="fieldtype"></a>

Devuelve el tipo de campo. Ver enum de tipos de campo.

Parámetros:

* nCampo: número de campo, el primero es el 0.

### Funciones de índices

#### Number indexCount() <a href="#indexcount" id="indexcount"></a>

Devuelve el número de índices de la tabla.

#### String indexId( Number nIndex ) <a href="#indexid" id="indexid"></a>

Devuelve el identificador del índice.

Parámetros:

* nIndex: número de orden del índice, el primer valor es el 0.

#### String indexName( Number nIndex ) <a href="#indexname" id="indexname"></a>

Devuelve el nombre del índice.

Parámetros:

* nIndex: número de orden del índice, el primer valor es el 0.

#### Number indexType( Number nIndex ) <a href="#indextype" id="indextype"></a>

Devuelve el identificador del índice. Ver enum de tipos de índices.

Parámetros:

* nIndex: número de orden del índice, el primer valor es el 0.

### Funciones de históricos

#### String pluralBoundedIndexId( Number nPlural ) <a href="#pluralboundedindexid" id="pluralboundedindexid"></a>

Devuelve el identificador del índice de la tabla enlazada maestra.

Parámetros:

* nPlural: número de orden del plural, el primero valor es el 0.

#### VObjectInfo pluralBoundedIndexInfo( Number nPlural ) <a href="#pluralboundedindexinfo" id="pluralboundedindexinfo"></a>

Devuelve un objeto de la clase [VObjectInfo](/32/velneo-vdevelop/scripts/lenguajes/javascript/clases/vobjectinfo.md) del índice de la tabla enlazada maestra.

Parámetros:

* nPlural: número de orden del plural, el primero valor es el 0.

#### String pluralBoundedTableId( Number nPlural ) <a href="#pluralboundedtableid" id="pluralboundedtableid"></a>

Devuelve el identificador de la tabla enlazada maestra.

Parámetros:

* nPlural: número de orden del plural, el primero valor es el 0.

#### VTableInfo pluralBoundedTableInfo( Number nPlural ) <a href="#pluralboundedtableinfo" id="pluralboundedtableinfo"></a>

Devuelve un objeto de la clase VTableInfo de la tabla enlazada maestra.

Parámetros:

* nPlural: número de orden del plural, el primero valor es el 0.

#### Number pluralCount() <a href="#pluralcount" id="pluralcount"></a>

Devuelve el número de enlaces plurales de la tabla.

#### String pluralId( Number nPlural ) <a href="#pluralid" id="pluralid"></a>

Devuelve el identificado del plural.

Parámetros:

* nPlural: número de orden del plural, el primero valor es el 0.

#### String pluralName( Number nPlural ) <a href="#pluralname" id="pluralname"></a>

Devuelve el nombre del plural.

Parámetros:

* nPlural: número de orden del plural, el primero valor es el 0.

### Funciones de localizadores por Id

#### Number findField( String szIDPrimarioCampo ) <a href="#findfield" id="findfield"></a>

Devuelve el número de campo de un identificador.

Parámetros:

* szIdPrimarioCampo: identificador del campo.

#### Number findIndex( String szIDPrimarioIndice ) <a href="#findindex" id="findindex"></a>

Devuelve el número del índice de un identificador.

Parámetros:

* szIdPrimarioIndice: identificador del índice.

#### Number findPlural( String szIDPrimarioHist ) <a href="#findplural" id="findplural"></a>

Devuelve el número del enlace plural de un identificador.

Parámetros:

* szIdPrimarioIndice: identificador del enlace plural.

## Ejemplos

### 1. Controlar si es una tabla maestra normal

```javascript
if (VTableInfo.TypeMaster == theRegisterIn.tableInfo().type())
{
    .....
}

o bien

if (VTableInfo.TypeMaster == theRegisterListIn.tableInfo().type())
{
    .....
}
```

### 2. Eliminar todos los plurales de la tabla ENT-M de vERP

```javascript
/**
 * Eliminar todos los plurales de un registro
 *
 * @param {Object} root Objeto desde el que se ejecuta  la función
 * @param {VRegister} registro Registro del que se desean eliminar los plurales
 * @returns {Boolean} True si se han eliminado todos los plurales o false en caso contrario
 */
velneoDB.eliminarPlurales = function (root, registro) {

    // VARIABLES: declaración de las variables
    var listaPlurales,
        indice = 0,
        numPlurales,
        numRegistro = 0,
        numRegistros,
        pluralId,
        registroPlural,
        retorno = true,
        tablaInfo,
        transActiva,
        transNueva;

    // PROCESO: se leen todas las tablas de la aplicación incluídas las heredadas
    if (root) {

        // Si no hay transacción se crea una nueva      
        transActiva = theRoot.existTrans();
        if (transActiva === false) {
            transNueva = theRoot.beginTrans("Eliminando históricos de la tabla " + tablaInfo.name());
        }
        if (transActiva || transNueva) {

            // Se analiza la tabla para recorrer sus plurales
            tablaInfo = registro.tableInfo();
            numPlurales = tablaInfo.pluralCount();

            // Se recorren los plurales de la tabla
            for (indice; indice < numPlurales; indice += 1) {
                pluralId = tablaInfo.pluralId(indice);
                listaPlurales = theRegisterIn.loadPlurals(pluralId);
                numRegistros = listaPlurales.size();

                // Se eliminan los registros plurales
                if (numRegistros > 0) {
                    for (numRegistro; numRegistro < numRegistros; numRegistro += 1) {
                        registroPlural = listaPlurales.readLockingAt(numRegistro);
                        if (registroPlural.deleteRegister() === false) {
                            retorno = false;
                        }
                    }
                }
            }

            // Si se ha creado una transacción nueva, se cierra
            if (transNueva === true) {
                theRoot.commitTrans();
            }
        }
    }

    // RETORNO: retornor true si se han podido eliminar todos los plurales
    return retorno;
};
```
