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.

Funciones

De tabla

Retorno

Función

String

String

String

Boolean

String

Number

String

Number

De campos

Retorno

Función

Numer

String

VTableInfo

Number

String

String

Number

Number

String

Boolean

Number

Number

String

String

String

String

Number

String

Number

Number

De índices

Retorno

Función

Number

String

String

Number

De históricos

Retorno

Función

String

String

VTableInfo

Number

String

String

De localizadores por Id

Retorno

Función

Number

Number

Number

Enumeraciones

Tipos de campo

  • FieldTypeAlpha256 = 00 - Alfa 256

  • FieldTypeAlpha128 = 01 - Alfa 128

  • FieldTypeAlpha64 = 02 - Alfa 64

  • FieldTypeAlpha40 = 03 - Alfa 40

  • FieldTypeAlphaLatin1 = 04 - Alfa Latin1

  • FieldTypeAlphaUtf16 = 05 - Alfa UTF-16

  • FieldTypeNumeric = 06 - Numérico

  • FieldTypeDate = 07 - Fecha

  • FieldTypeTime = 08 - Hora

  • FieldTypeDateTime = 09 - Tiempo (fecha y hora)

  • FieldTypeBool = 10 - Booleano

  • FieldTypeObject = 11 - Objeto

  • FieldTypeFormulaNumeric = 12 - Fórmula numérica

  • FieldTypeFormulaAlfa = 13 - Fórmula alfabética

  • FieldTypeFormulaDate = 14 - Fórmula fecha

  • FieldTypeFormulaDateTime = 15 - Fórmula tiempo (fecha y hora)

  • FieldTypeVirtualBind = 18 - Puntero virtual

Tipos de campos objeto

  • ObjectTypePicture = 0 - Imagen

  • ObjectTypeText = 1 - Texto

  • ObjectTypeRichText = 2 - Texto enriquecido

  • ObjectTypeBinary = 3 - Binario

  • ObjectTypeFormula = 4 - Fórmula dinámica

Tipos de enlaces de campo (bindType)

  • BindTypeNone = 0 - Ninguno

  • BindTypeMaster = 1 - Tabla maestra

  • BindTypeStatic = 2 - Tabla estática

  • BindTypeIndirectReal = 3 - Indirecto real

  • BindTypeIndirectVirtual = 4 - Indirecto virtual

  • BindTypeSingularPluralPos = 5 - Singular de plural por posición

  • BindTypeSingularPluralIndex = 6 - Singular de plural por índice

  • BindTypeAdjacentSibling = 7 - Hermano contiguo

  • BindTypeMasterExt = 8 - Maestro de extensión

Tipos de índices

  • IndexTypeSingleKey = 0 - Clave única

  • IndexTypeWords = 1 - Palabras

  • IndexTypeMultiKey = 2 - Múltiples claves

  • IndexTypeAcceptRepeat = 3 - Acepta repetidas

  • IndexTypeWordParts = 4 - Trozos de palabras

Tipos de tablas

  • TypeMaster = 0 - Maestra

  • TypeHistorical = 1 - Histórica

  • TypeMasterSub = 2 - Submaestra

  • TypeMasterTree = 3 - Arbolada

  • TypeMasterExt = 4 - Maestro de extensión

Documentación de funciones

Funciones de tabla

String comments()

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()

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

String idRef()

Devuelve el idRef (Alias_Aplicación/Id_Tabla) de la tabla. Por ejemplo: "ERP/CLIENTES".

Boolean isInMemory()

Devuelve true si la tabla reside en memoria.

String name()

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()

Devuelve la longitud en bytes del registro de la tabla.

String singleName()

Devuelve el nombre singular de la tabla.

Number type()

Devuelve el código de tipo de tabla. Ver enum de tipos de tablas.

Funciones de campos

Numer fieldBindType( Number nCampo )

Devuelve el tipo de enlace del campo. Ver enum de tipos de enlaces de campo.

Parámetros:

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

String fieldBoundedTableId( Number nCampo )

Devuelve el identificador de la tabla enlazada.

Parámetros:

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

VTableInfo fieldBoundedTableInfo( Number nPlural )

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 )

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 )

Devuelve el valor de la propiedad comentarios del campo.

Parámetros:

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

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

String fieldComments( String szIdCampo )

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()

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

Number fieldDecimals( Number nCampo )

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 )

Devuelve el identificador del campo.

Parámetros:

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

Boolean fieldIsSigned( Number nCampo )

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 )

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 )

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 )

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 )

Devuelve el tipo de objeto de un campo objeto. Ver enum de tipos de campos objeto.

Parámetros:

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

String fieldParentFieldId( Number nCampo )

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 )

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 )

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()

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

String indexId( Number nIndex )

Devuelve el identificador del índice.

Parámetros:

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

String indexName( Number nIndex )

Devuelve el nombre del índice.

Parámetros:

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

Number indexType( Number nIndex )

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 )

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 )

Devuelve un objeto de la clase VObjectInfo 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 )

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 )

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()

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

String pluralId( Number nPlural )

Devuelve el identificado del plural.

Parámetros:

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

String pluralName( Number nPlural )

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 )

Devuelve el número de campo de un identificador.

Parámetros:

  • szIdPrimarioCampo: identificador del campo.

Number findIndex( String szIDPrimarioIndice )

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

Parámetros:

  • szIdPrimarioIndice: identificador del índice.

Number findPlural( String szIDPrimarioHist )

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

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

/**
 * 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;
};

Última actualización