VRegister

Los objetos de esta clase representan una ficha de una tabla.

Los register pueden ser creados:

Automáticamente por Velneo como theRegisterIn y theRegisterOut al inicio de un script lanzado desde uno o varios objetos Velneo con entrada o salida ficha.

Desde otro objeto en javascript como con la función readAt de la clase VRegisterList que devuelve un VRegister.

Dispone de funciones para gestionar los contenidos de los campos por identificador simple o compuesto y por número de campo. Además se pueden ver los contenidos previos de los campos, cuando se leyó la ficha.

También dispone de una funciones para obtener la subclase del tipo VTableInfo que nos da información api de la tabla y de sus campos, índices e históricos para ver las propiedades de estos objetos como por ejemplo el tipo de un campo, su identificador o su número de decimales.

Para edición tenemos funciones de alta, baja y modificación así como de control de errores.

Y al más puro estilo Velneo, las funciones de navegante.

Indice de Funciones

Constructor

VRegister( VRoot root)

Inicialización

Boolean setTable( String szIdRefTable, Boolean bContenidosIniciales )

De Api de tabla

VTableInfo tableInfo()

De contenido de campos por identificador

Variant calcDynamicFormula( String szIDCompuestoCampo )

Boolean fieldToBool( String szIDCompuestoCampo )

Date fieldToDate( String szIDCompuestoCampo )

DateTime fieldToDateTime( String szIDCompuestoCampo )

Number fieldToDouble( String szIDCompuestoCampo )

Number fieldToInt( String szIDCompuestoCampo )

String fieldToString( String szIDCompuestoCampo )

Time fieldToTime( String szIDCompuestoCampo )

De contenido de campos por número de campo

Boolean fieldToBool( Number nCampo )

Date fieldToDate( Number nCampo )

DateTime fieldToDateTime( Number nCampo )

Number fieldToDouble( Number nCampo )

Number fieldToInt( Number nCampo )

String fieldToString( Number nCampo )

Time fieldToTime( Number nCampo )

De valor old de campos por identificador

Boolean oldFieldToBool( String szIDPrimarioCampo )

Date oldFieldToDate( String szIDPrimarioCampo )

DateTime oldFieldToDateTime( String szIDPrimarioCampo )

Number oldFieldToDouble( String szIDPrimarioCampo )

Number oldFieldToInt( String szIDPrimarioCampo )

String oldFieldToString( String szIDPrimarioCampo )

Time oldFieldToTime( String szIDPrimarioCampo )

De valor old de campos por número de campo

Boolean oldFieldToBool( Number nCampo )

Date oldFieldToDate( Number nCampo )

DateTime oldFieldToDateTime( Number nCampo )

Number oldFieldToDouble( Number nCampo )

Number oldFieldToInt( Number nCampo )

String oldFieldToString( Number nCampo )

Time oldFieldToTime( Number nCampo )

De modificación de campos por identificador

void setField( String szIDPrimarioCampo, String szText )

void setField( String szIDPrimarioCampo, double dValor )

void setField( String szIDPrimarioCampo, int nValor )

void setField( String szIDPrimarioCampo, StringDateTime tiempo )

void setField( String szIDPrimarioCampo, StringDate fecha )

void setField( String szIDPrimarioCampo, StringTime tiempo )

void setField( String szIDPrimarioCampo, Boolean bool )

De modificación de campos por número de campo

void setField( Number nCampo, Boolean bool )

void setField( Number nCampo, double dValor)

void setField( Number nCampo, int nValor )

void setField( Number nCampo, String szText )

void setField( Number nCampo, StringDateTime tiempo )

void setField( Number nCampo, StringDate fecha )

void setField( Number nCampo, StringTime tiempo )

Para campos de tipo objeto

VByteArray fieldToByteArray( String szIDPrimarioCampo )

VImage fieldToImage( String szIDPrimarioCampo )

void setFieldByteArray( Number nCampo, VByteArray baBuffer )

void setFieldByteArray( String szIDPrimarioCampo, VByteArray baBuffer )

void setFieldImage( Number nCampo, VImage image )

void setFieldImage( String szIDPrimarioCampo, VImage image )

De estado

Boolean exist()

Boolean isFieldEmpty( Number nCampo )

Boolean isFieldEmpty( String szIDCompuestoCampo )

Boolean isFieldModified( Number nCampo )

Boolean isFieldModified( String szIDCompuestoCampo )

Boolean isModified()

De operaciones de disco

Boolean addRegister()

Boolean deleteRegister()

Boolean deleteRegisterWhithoutDeupdating()

String errorMessage()

Number errorNumber()

Boolean isOK()

Boolean modifyRegister()

Boolean readFirstRegister( String szIdIndice )

Boolean readLastRegister( String szIdIndice )

Boolean readNextRegister( String szIdIndice )

Boolean readPrevRegister( String szIdIndice )

Boolean readRegister( String szIdIndice, Array aKeyPartsResol, Number searchMode )

De navegante

VRegisterList& loadPlurals( String szIDHistorico )

VRegister readLockingMaster( String szIDPrimarioCampo )

VRegister readMaster( String szIDPrimarioCampo )

De variables locale

Date varToDate( String szID )

DateTime varToDateTime( String szID )

Number varToDouble( String szID )

Number varToInt( String szID )

String varToString( String szID )

Time varToTime( String szID )

De variables de sistema

String clientCachePath()

Number currentPage()

Boolean isAdministrator()

Number lastPage()

Number listPos()

Number listSize()

String userName()

Funciones varias

Boolean copyFrom( VRegister registerOtro )

Boolean runProcess( String szIdRefProcess )

De JSON

Object fromJSON( String szJSON )

Object toJSON( Array aszIDs )

Enumeraciones

Errores de operaciones de base de datos

  • ErrorNone = 0

  • ErrorUnknown = 1

  • ErrorTransUnknown = 2

  • ErrorAddReg = 3

  • ErrorDeleteReg = 4

  • ErrorModifyReg = 5

  • ErrorRead = 6

  • ErrorReadLocking = 7

  • ErrorNullDir = 8

  • ErrorIndexOutOfRange = 9

  • ErrorRegNotInit = 10

SearchModes

  • SearchThis

  • SearchNext

  • SearchPrev

  • SearchThisOrNext

  • SearchThisOrPrev

  • SearchFirst

  • SearchLast

Documentación de funciones

Constructor

VRegister( VRoot root )

Constructor de VRegister.

Parámetros:

  • root: objeto VRoot, normalmente theRoot.

Inicialización

Boolean setTable( String szIdRefTable, Boolean bContenidosIniciales )

Asigna la tabla al objeto VRegister creado con el constructor. Devuelve true si ha podido asignar la tabla correctamente. Una vez ejecutada es equivalente a crear una cesta de la tabla.

Parámetros:

  • szIdRefTable: cadena que contiene el identificador referencia de la tabla.

  • contenidosIniciales: booleano que indica si se ejecutarán los contenidos iniciales al crearse el registro, por defecto vale true, así que debemos especificar false para evitar que se disparen al crearse el nuevo registro.

Funciones de Api de tabla

VTableInfo tableInfo()

Devuelve un objeto VTableInfo de la tabla del registro.

Funciones de contenido de campos por identificador

Variant calcDynamicFormula( String szIDCompuestoCampo )

Devuelve el resultado de realizar el cálculo del campo objeto fórmula.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador compuesto del campo.

Boolean fieldToBool( String szIDCompuestoCampo )

Devuelve el contenido de un campo en función del tipo.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador compuesto del campo.

Date fieldToDate( String szIDCompuestoCampo )

Devuelve el contenido de un campo en función del tipo.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador compuesto del campo.

DateTime fieldToDateTime( String szIDCompuestoCampo )

Devuelve el contenido de un campo en función del tipo.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador compuesto del campo.

Number fieldToDouble( String szIDCompuestoCampo )

Devuelve el contenido de un campo en función del tipo.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador compuesto del campo.

Number fieldToInt( String szIDCompuestoCampo )

Devuelve el contenido de un campo en función del tipo.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador compuesto del campo.

String fieldToString( String szIDCompuestoCampo )

Devuelve el contenido de un campo en función del tipo.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador compuesto del campo.

Time fieldToTime( String szIDCompuestoCampo )

Devuelve el contenido de un campo en función del tipo.

Esta función devuelve un objeto hora, que es propio de la API de Velneo. Por lo tanto, solamente podremos gestionar el dato retornado solamente en la API de Velneo (por ejemplo, leer el campo de un registro para luego asignarlo a otro registro), pero no en JavaScript estándar ya que en JavaScript no existe.

Por ejemplo, si queremos generar un JSON con los datos de un registro y uno de los campos es de tipo hora, usaremos la función fieldToString para que devuelva el dato como cadena, que sí es reconocible por JavaScript.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador compuesto del campo.

Funciones de contenido de campos por número de campo

Boolean fieldToBool( Number nCampo )

Devuelve el contenido de un campo en función del tipo.

Parámetros:

  • nCampo: número que contiene la posición del campo en la tabla. El primero campo es el 0.

Date fieldToDate( Number nCampo )

Devuelve el contenido de un campo en función del tipo.

Parámetros:

  • nCampo: número que contiene la posición del campo en la tabla. El primero campo es el 0.

DateTime fieldToDateTime( Number nCampo )

Devuelve el contenido de un campo en función del tipo.

Parámetros:

  • nCampo: número que contiene la posición del campo en la tabla. El primero campo es el 0.

Number fieldToDouble( Number nCampo )

Devuelve el contenido de un campo en función del tipo.

Parámetros:

  • nCampo: número que contiene la posición del campo en la tabla. El primero campo es el 0.

Number fieldToInt( Number nCampo )

Devuelve el contenido de un campo en función del tipo.

Parámetros:

  • nCampo: número que contiene la posición del campo en la tabla. El primero campo es el 0.

String fieldToString( Number nCampo )

Devuelve el contenido de un campo en función del tipo.

Parámetros:

  • nCampo: número que contiene la posición del campo en la tabla. El primero campo es el 0.

Time fieldToTime( Number nCampo )

Devuelve el contenido de un campo en función del tipo.

Parámetros:

  • nCampo: número que contiene la posición del campo en la tabla. El primero campo es el 0.

Funciones de valor old de campos por identificador

Boolean oldFieldToBool( String szIDPrimarioCampo )

Devuelve el contenido anterior a la modificación de un campo en función del tipo. El valor old es diferente al valor del campo si ha sido modificado pero aún se ha guardado la información en disco. La precisión en JavaScript de los números con decimales es la de tipo "double". El identificador de campo compuesto permite especificar campos de la tabla y de las enlazadas.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador del campo.

Date oldFieldToDate( String szIDPrimarioCampo )

Devuelve el contenido anterior a la modificación de un campo en función del tipo. El valor old es diferente al valor del campo si ha sido modificado pero aún se ha guardado la información en disco. La precisión en JavaScript de los números con decimales es la de tipo "double". El identificador de campo compuesto permite especificar campos de la tabla y de las enlazadas.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador del campo.

DateTime oldFieldToDateTime( String szIDPrimarioCampo )

Devuelve el contenido anterior a la modificación de un campo en función del tipo. El valor old es diferente al valor del campo si ha sido modificado pero aún se ha guardado la información en disco. La precisión en JavaScript de los números con decimales es la de tipo "double". El identificador de campo compuesto permite especificar campos de la tabla y de las enlazadas.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador del campo.

Number oldFieldToDouble( String szIDPrimarioCampo )

Devuelve el contenido anterior a la modificación de un campo en función del tipo. El valor old es diferente al valor del campo si ha sido modificado pero aún se ha guardado la información en disco. La precisión en JavaScript de los números con decimales es la de tipo "double". El identificador de campo compuesto permite especificar campos de la tabla y de las enlazadas.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador del campo.

Number oldFieldToInt( String szIDPrimarioCampo )

Devuelve el contenido anterior a la modificación de un campo en función del tipo. El valor old es diferente al valor del campo si ha sido modificado pero aún se ha guardado la información en disco. La precisión en JavaScript de los números con decimales es la de tipo "double". El identificador de campo compuesto permite especificar campos de la tabla y de las enlazadas.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador del campo.

String oldFieldToString( String szIDPrimarioCampo )

Devuelve el contenido anterior a la modificación de un campo en función del tipo. El valor old es diferente al valor del campo si ha sido modificado pero aún se ha guardado la información en disco. La precisión en JavaScript de los números con decimales es la de tipo "double". El identificador de campo compuesto permite especificar campos de la tabla y de las enlazadas.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador del campo.

No es funcional con campos objeto (recordemos que su contenido no se guarda en la tabla sino en un fichero adicional llamado contenedor), ya que no hay acceso directo a la información del contenedor, pues se encuentra en el ámbito de registro y no de ficha.

Time oldFieldToTime( String szIDPrimarioCampo )

Devuelve el contenido anterior a la modificación de un campo en función del tipo. El valor old es diferente al valor del campo si ha sido modificado pero aún se ha guardado la información en disco. La precisión en JavaScript de los números con decimales es la de tipo "double". El identificador de campo compuesto permite especificar campos de la tabla y de las enlazadas.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador del campo.

Funciones de valor old de campos por número de campo

Boolean oldFieldToBool( Number nCampo )

Devuelve el contenido anterior a la modificación de un campo en función del tipo. El valor old es diferente al valor del campo si ha sido modificado pero aún se ha guardado la información en disco. La precisión en JavaScript de los números con decimales es la de tipo "double". El identificador de campo compuesto permite especificar campos de la tabla y de las enlazadas.

Parámetros:

  • nCampo: número que contiene la posición del campo en la tabla. El primer campo es 0.

Date oldFieldToDate( Number nCampo )

Devuelve el contenido anterior a la modificación de un campo en función del tipo. El valor old es diferente al valor del campo si ha sido modificado pero aún se ha guardado la información en disco. La precisión en JavaScript de los números con decimales es la de tipo "double". El identificador de campo compuesto permite especificar campos de la tabla y de las enlazadas.

Parámetros:

  • nCampo: número que contiene la posición del campo en la tabla. El primer campo es 0.

DateTime oldFieldToDateTime( Number nCampo )

Devuelve el contenido anterior a la modificación de un campo en función del tipo. El valor old es diferente al valor del campo si ha sido modificado pero aún se ha guardado la información en disco. La precisión en JavaScript de los números con decimales es la de tipo "double". El identificador de campo compuesto permite especificar campos de la tabla y de las enlazadas.

Parámetros:

  • nCampo: número que contiene la posición del campo en la tabla. El primer campo es 0.

Number oldFieldToDouble( Number nCampo )

Devuelve el contenido anterior a la modificación de un campo en función del tipo. El valor old es diferente al valor del campo si ha sido modificado pero aún se ha guardado la información en disco. La precisión en JavaScript de los números con decimales es la de tipo "double". El identificador de campo compuesto permite especificar campos de la tabla y de las enlazadas.

Parámetros:

  • nCampo: número que contiene la posición del campo en la tabla. El primer campo es 0.

Number oldFieldToInt( Number nCampo )

Devuelve el contenido anterior a la modificación de un campo en función del tipo. El valor old es diferente al valor del campo si ha sido modificado pero aún se ha guardado la información en disco. La precisión en JavaScript de los números con decimales es la de tipo "double". El identificador de campo compuesto permite especificar campos de la tabla y de las enlazadas.

Parámetros:

  • nCampo: número que contiene la posición del campo en la tabla. El primer campo es 0.

String oldFieldToString( Number nCampo )

Devuelve el contenido anterior a la modificación de un campo en función del tipo. El valor old es diferente al valor del campo si ha sido modificado pero aún se ha guardado la información en disco. La precisión en JavaScript de los números con decimales es la de tipo "double". El identificador de campo compuesto permite especificar campos de la tabla y de las enlazadas.

Parámetros:

  • nCampo: número que contiene la posición del campo en la tabla. El primer campo es 0.

No es funcional con campos objeto (recordemos que su contenido no se guarda en la tabla sino en un fichero adicional llamado contenedor), ya que no hay acceso directo a la información del contenedor, pues se encuentra en el ámbito de registro y no de ficha.

Time oldFieldToTime( Number nCampo )

Devuelve el contenido anterior a la modificación de un campo en función del tipo. El valor old es diferente al valor del campo si ha sido modificado pero aún se ha guardado la información en disco. La precisión en JavaScript de los números con decimales es la de tipo "double". El identificador de campo compuesto permite especificar campos de la tabla y de las enlazadas.

Parámetros:

  • nCampo: número que contiene la posición del campo en la tabla. El primer campo es 0.

Funciones de modificación de campos por identificador

void setField( String szIDPrimarioCampo, String szText )

Modifica el valor de un campo en función del tipo.

Parámetros:

  • szIDPrimarioCampo: cadena que contiene el identificador del campo.

  • szText: cadena de texto a asignar como valor del campo.

void setField( String szIDPrimarioCampo, double dValor )

Modifica el valor de un campo en función del tipo. La precisión en JavaScript de los números con decimales es la de tipo "double".

Parámetros:

  • szIDPrimarioCampo: cadena que contiene el identificador del campo.

  • dValor: número decimal a asignar como valor del campo.

void setField( String szIDPrimarioCampo, int nValor )

Modifica el valor de un campo en función del tipo.

Parámetros:

  • szIDPrimarioCampo: cadena que contiene el identificador del campo.

  • nValor: número entero a asignar como valor del campo.

void setField( String szIDPrimarioCampo, StringDateTime tiempo )

Modifica el valor de un campo en función del tipo.

Parámetros:

  • szIDPrimarioCampo: cadena que contiene el identificador del campo.

  • tiempo: tiempo (fecha y hora) a asignar como valor del campo en formato ISO-8061 (AAAA-MM-DDThh:mm:ss,ssZ).

void setField( String szIDPrimarioCampo, StringDate fecha )

Modifica el valor de un campo en función del tipo.

Parámetros:

  • szIDPrimarioCampo: cadena que contiene el identificador del campo.

  • fecha: fecha a asignar como valor del campo en formato ISO-8061 (AAAA-MM-DD).

void setField( String szIDPrimarioCampo, StringTime tiempo )

Modifica el valor de un campo en función del tipo.

Parámetros:

  • szIDPrimarioCampo: cadena que contiene el identificador del campo.

  • tiempo: tiempo a asignar como valor del campo en formato ISO-8061 (hh:mm:ss,ss).

void setField( String szIDPrimarioCampo, Boolean bool )

Modifica el valor de un campo en función del tipo.

Parámetros:

  • szIDPrimarioCampo: cadena que contiene el identificador del campo.

  • bool: booleano a asignar como valor del campo.

Funciones de modificación de campos por número de campo

void setField( Number nCampo, Boolean bool )

Modifica el valor de un campo en función del tipo.

Parámetros:

  • szIDPrimarioCampo: cadena que contiene el identificador del campo.

  • bool: booleano a asignar como valor del campo.

void setField( Number nCampo, double dValor)

Modifica el valor de un campo en función del tipo. La precisión en JavaScript de los números con decimales es la de tipo "double".

Parámetros:

  • nCampo: número que contiene la posición campo. El primer campo es 0.

  • dValor: número decimal a asignar como valor del campo.

void setField( Number nCampo, int nValor )

Modifica el valor de un campo en función del tipo.

Parámetros:

  • nCampo: número que contiene la posición campo. El primer campo es 0.

  • nValor: número entero a asignar como valor del campo.

void setField( Number nCampo, String szText )

Modifica el valor de un campo en función del tipo.

Parámetros:

  • nCampo: número que contiene la posición campo. El primer campo es 0.

  • szText: cadena de texto a asignar como valor del campo.

void setField( Number nCampo, StringDateTime tiempo )

Modifica el valor de un campo en función del tipo.

Parámetros:

  • nCampo: número que contiene la posición campo. El primer campo es 0.

  • tiempo: tiempo (fecha y hora) a asignar como valor del campo en formato ISO-8061 (AAAA-MM-DDThh:mm:ss,ss).

void setField( Number nCampo, StringDate fecha )

Modifica el valor de un campo en función del tipo.

Parámetros:

  • nCampo: número que contiene la posición campo. El primer campo es 0.

  • fecha: fecha a asignar como valor del campo en formato ISO-8061 (AAAA-MM-DD).

void setField( Number nCampo, StringTime tiempo )

Modifica el valor de un campo en función del tipo.

Parámetros:

  • nCampo: número que contiene la posición campo. El primer campo es 0.

  • tiempo: tiempo a asignar como valor del campo en formato ISO-8061 (hh:mm:ss,ss).

Funciones para campos de tipo objeto

VByteArray fieldToByteArray( String szIDPrimarioCampo )

Devuelve un objeto de la clase VByteArray con el contenido de un campo de tipo objeto. También puede utilizarse con campos que no sean de tipo objeto.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador compuesto del campo.

VImage fieldToImage( String szIDPrimarioCampo )

Devuelve un objeto de la clase VImage con el contenido de un campo de tipo objeto dibujo.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador compuesto del campo.

void setFieldByteArray( Number nCampo, VByteArray baBuffer )

Modifica el contenido de un campo de tipo objeto con el contenido de un objeto VByteArray. También se puede utilizar para campos que no sean de tipo objeto. El campo destino se especifica mediante su número de campo.

Parámetros:

  • nCampo: número que contiene la posición campo. El primer campo es 0.

  • baBuffer: buffer con el contenido del objeto VByteArray a grabar en el campo objeto.

void setFieldByteArray( String szIDPrimarioCampo, VByteArray baBuffer )

Modifica el contenido de un campo de tipo objeto con el contenido de un objeto VByteArray. También se puede utilizar para campos que no sean de tipo objeto. El campo destino se especifica mediante su identificador.

Parámetros:

  • nCampo: número que contiene la posición campo. El primer campo es 0.

  • baBuffer: buffer con el contenido del objeto VByteArray a grabar en el campo objeto.

void setFieldImage( Number nCampo, VImage image )

Modifica el contenido de un campo de tipo objeto dibujo con el contenido de un objeto VImage. El campo destino se especifica mediante su número de campo.

Parámetros:

  • nCampo: number que contiene la posición campo. El primer campo es 0.

  • image: contenido del objeto VImage a grabar en el campo de tipo objeto dibujo.

void setFieldImage( String szIDPrimarioCampo, VImage image )

Modifica el contenido de un campo de tipo objeto dibujo con el contenido de un objeto VImage. El campo destino se especifica mediante su identificador.

Parámetros:

  • szIDPrimarioCampo: cadena que contiene el identificador del campo.

  • image: contenido del objeto VImage a grabar en el campo de tipo objeto dibujo.

Funciones de estado

Boolean exist()

Devuelve true si el registro existe.

Boolean isFieldEmpty( Number nCampo )

Devuelve true si el campo está vacío.

Parámetros:

  • nCampo: número que contiene la posición del campo en la tabla. El primero campo es el 0.

Boolean isFieldEmpty( String szIDCompuestoCampo )

Devuelve true si el campo está vacío.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador compuesto del campo.

Boolean isFieldModified( Number nCampo )

Devuelve true si el contenido del campo ha sido modificado.

Parámetros:

  • nCampo: número que contiene la posición del campo. El primer campo es 0.

Boolean isFieldModified( String szIDCompuestoCampo )

Devuelve true si el contenido del campo ha sido modificado.

Parámetros:

  • szIDCompuestoCampo: cadena que contiene el identificador compuesto del campo.

Boolean isModified()

Devuelve true si alguno de los campos del registros ha sido modificado.

Funciones de operaciones de disco

Boolean addRegister()

Da del alta el registro en la base de datos.

Boolean deleteRegister()

Elimina el registro en la base de datos.

Boolean deleteRegisterWhithoutDeupdating()

Elimina el registro en la base de datos sin deshacer las actualizaciones. Esta función se utiliza para eliminar registros históricos sin que al eliminarlos se desactualicen las tablas maestras donde han acumulado datos.

String errorMessage()

Devuelve el texto del mensaje de error.

Number errorNumber()

Devuelve el número de error producido en la operación de base de datos.

Ver enum de errores de operaciones de base de datos.

Boolean isOK()

Devuelve true si la operación de base de datos ha finalizado satisfactoriamente.

Boolean modifyRegister()

Modifica el registro en la base de datos.

Boolean readFirstRegister( String szIdIndice )

Devuelve el primer registro que devuelve el índice que pasamos como parámetro.

Parámetros:

  • szIdIndice: cadena que contiene el identificador del índice.

Boolean readLastRegister( String szIdIndice )

Devuelve el último registro que devuelve el índice que pasamos como parámetro.

Parámetros:

  • szIdIndice: cadena que contiene el identificador del índice.

Boolean readNextRegister( String szIdIndice )

Devuelve el registro siguiente que devuelve el índice que pasamos como parámetro.

Parámetros:

  • szIdIndice: cadena que contiene el identificador del índice.

Boolean readPrevRegister( String szIdIndice )

Devuelve el registro anterior que devuelve el índice que pasamos como parámetro.

Parámetros:

  • szIdIndice: cadena que contiene el identificador del índice.

Boolean readRegister( String szIdIndice, Array aKeyPartsResol, Number searchMode )

Devuelve el registro que cargamos del índice que pasamos como parámetro.

Parámetros:

  • szIdIndice: cadena que contiene el identificador del índice.

  • aKeyPartsResol: array que contiene las resoluciones de cada una de las partes del índice.

  • searchMode: número que contiene el modo de búsqueda. Ver enum de searchModes.

Los modos "SearchThis", "SearchThisOrNext" y "SearchThisOrPrev" sólo son operativos correctamente con índices de tipo clave única, un índice de tipo Acepta repetidas, por ejemplo, no puede devolver un único registro para un valor dado en el índice.

Los modos "SearchFirst" y "SearchLast" no necesitan resolver el índice.

Las funciones de escritura en disco (addRegister, modifyRegister, etc.) sobre tablas en memoria requiere abrir transacción para que las operaciones se reflejen en la tabla.

Funciones de navegante

VRegisterList loadPlurals( String szIDHistorico )

Devuelve una referencia a un objeto de la clase VRegisterList que se genera internamente con la lista de registros del enlace plural del registro actual. Equivale al comando cargar plurales y a navegar a histórico de uno.

Al ser una referencia a una lista de registros interna, una segunda ejecución de la función loadPlurals provocará que se destruya la referencia anterior y se cree otra nueva. Para guardar esta lista debemos crear un nuevo VRegisterList.

Este comando está optimizado de modo que se pasa la ficha al servidor para que la carga de sus plurales se realice en 3er plano, excepto en el caso de las tablas en memoria, que se hará en primer plano.

// Ejemplo de creación de VRegisterList para guardar la lista de registro plurales
var listaPlural1 = new VRegisterList( theRoot );
var listaPlural2 = new VRegisterList( theRoot );
listaPlural1.append( theRegisterIn.loadPlurals( "aliasApp/PLURAL1" ) );
listaPlural2.append( theRegisterIn.loadPlurals( "aliasApp/PLURAL2" ) );
// Así tendremos en listaPlural1 y listaPlural2 los registros plurales sin que le afecten otros loadPlurals().

Parámetros:

  • szIDHistorico: cadena que contiene el identificador del plural.

VRegister readLockingMaster( String szIDPrimarioCampo )

Accede al registro maestro en modificación, bloqueándolo en la transacción en curso.

Parámetros:

  • szIDPrimarioCampo: cadena que contiene el identificador del campo puntero al maestro.

VRegister readMaster( String szIDPrimarioCampo )

Accede al registro maestro en sólo lectura.

Parámetros:

  • szIDPrimarioCampo: cadena que contiene el identificador del campo puntero al maestro.

Funciones de variables locales

Date varToDate( String szID )

Devuelve el valor de una variable local en función del tipo.

Parámetros:

  • szID: cadena que contiene el identificador de la variable local.

DateTime varToDateTime( String szID )

Devuelve el valor de una variable local en función del tipo.

Parámetros:

  • szID: cadena que contiene el identificador de la variable local.

Number varToDouble( String szID )

Devuelve el valor de una variable local en función del tipo.

Parámetros:

  • szID: cadena que contiene el identificador de la variable local.

Number varToInt( String szID )

Devuelve el valor de una variable local en función del tipo.

Parámetros:

  • szID: cadena que contiene el identificador de la variable local.

String varToString( String szID )

Devuelve el valor de una variable local en función del tipo.

Parámetros:

  • szID: cadena que contiene el identificador de la variable local.

Time varToTime( String szID )

Devuelve el valor de una variable local en función del tipo.

Parámetros:

  • szID: cadena que contiene el identificador de la variable local.

Funciones de variables de sistema

String clientCachePath()

Devuelve el path del directorio de caché de la aplicación.

Number currentPage()

Devuelve el número de la página en curso de un informe.

Boolean isAdministrator()

Devuelve true si el usuario tiene marcado en vAdmin el check Supervisor.

Number lastPage()

Devuelve el número de páginas de un informe.

Number listPos()

Devuelve la posición del registro en la lista de registros.

Number listSize()

Devuelve el tamaño de registros de una lista.

String userName()

Devuelve el nombre del usuario en curso.

Funciones varias

Boolean copyFrom( VRegister registerOtro )

Copia el registro que pasamos como parámetro.

Parámetros:

  • registerOtro: objeto VRegistro que copiamos.

Boolean runProcess( String szIdRefProcess )

Ejecuta un proceso Velneo o JavaScript.

Parámetros:

  • szIdRefProcess: cadena que contiene el identificador referencia del proceso ("Alias_proyecto/ID_proceso").

Funciones de JSON

Object fromJSON( String szJSON )

Esta función permite asignar el valor de múltiples campos a un registro a partir de los datos contenidos en un objeto JSON.

Parámetros:

  • szJson: cadena que contiene el JSON de origen.

Devuelve un objeto JavaScript con los siguientes campos:

  • ok: booleano con el retorno de ok.

  • errors: cadena de texto con formato array de JSON con los errores.

Podremos obtener estos campos del objeto JavaScript del modo siguiente:

Ejemplo 1:

var operacion = theRegisterIn.fromJSON( JSON_RECIBIDO )
var bOk = operacion.ok;
var errores = operacion.errors;

Ejemplo 2:

var operacion = theRegisterIn.fromJSON( JSON_RECIBIDO )
var bOk = operacion["ok"];
var errores = operacion["errors"];

Ver enum de errores de JSON.

Object toJSON( Array aszIDs )

Convierte un registro de una tabla en un objeto JSON debidamente formateado, permitiendo definir si se incluyen todos o algunos campos.

Equivale al comando de instrucción de proceso generar JSON desde ficha.

Parámetros:

  • aszIDs: array con los identificadores de los campos camos de la tabla con los que queremos generar el JSON. Si queremos incluirlos todos, usaremos un array vacío: []

Devuelve un objeto JavaScript con los siguientes campos:

  • ok: booleano con el retorno de ok.

  • json: cadena de texto con formato JSON con el resultado.

  • errors: cadena de texto con formato array de JSON con los errores.

Podremos obtener estos campos del objeto JavaScript del modo siguiente:

Ejemplo 1:

var operacion = theRegisterIn.toJson( [] );
var bOk = operacion.ok;
var szJson = operacion.json;
var errores = operacion.errors;

Ejemplo 2:

var operacion = theRegisterIn.toJson( ["ID","NAME", "PVP"] );
var bOk = operacion["ok"];
var szJson = operacion["json"];
var errores = operacion["errors"];

Ejemplos

1. Carga un plural

var facturasRegisterList = theRegisterIn.loadPlurals("FACTURAS");

2. Creación de VRegisterList para guardar la lista interna obtenida con loadPlurals()

var listaPlural1 = new VRegisterList( theRoot );
var listaPlural2 = new VRegisterList( theRoot );

listaPlural1.append( theRegisterIn.loadPlurals( "aliasApp/PLURAL1" ) );
listaPlural2.append( theRegisterIn.loadPlurals( "aliasApp/PLURAL2" ) );

// Así tendremos en listaPlural1 y listaPlural2 los registros plurales sin que le afecten otros loadPlurals().

3. Eliminar las líneas de un pedido sin desactualizar

// --------------------------------------------------------------------------------
// Eliminar las líneas de un pedido sin desactualizar
// --------------------------------------------------

// Se controla si ya existe una transacción en curso para no crear una nuevaTrans
var nuevaTrans = false;
var hayTrans = theRoot.existTrans();
if ( hayTrans == false ) 
{
  var nuevaTrans = theRoot.beginTrans( "Eliminando líneas del pedido sin desactualizar" )
};

// Si hay transacción se recorren los plurales eliminando los registros sin desactualizar
if ( hayTrans || nuevaTrans )
{
  var lista = theRegisterIn.loadPlurals( "LINEAS_ID" );
  for ( var numRegistro = 0; numRegistro < lista.size(); numRegistro++ )
  {
    var registro = lista.readLockingAt( numRegistro );
    registro.deleteRegisterWhithoutDeupdating();
  };
};

// Si se creó una nueva transacción se finaliza
if ( nuevaTrans )
{
  theRoot.commitTrans();
};

4. Aceptar sin cerrar formulario

Manejador de evento de un formulario de altas de una tabla que guarda la ficha y comienza el alta de una nueva ficha

// Accedemos al formulario en curso y guardamos la ficha
form = theRoot.dataView(); 
form.saveRegister();

//Creamos un nuevo registro y lo asignamos al formulario
newReg = new VRegister( theRoot ); 
newReg.setTable( theRegisterIn.tableInfo().idRef()); 
form.setRegister( newReg ); 

//Situamos el cursor en el primer control del formulario 
form.setFocusToFirst();

5. Dar de alta una ficha en una tabla

// Se controla si ya existe una transacción en curso para no crear una nueva transacción  
var nuevaTrans = false;
var hayTrans = theRoot.existTrans();

if ( hayTrans == false ) 
{
  var nuevaTrans = theRoot.beginTrans( "Nuevo artículo" )
};

// Si hay transacción se crea el nuevo registro
if ( hayTrans || nuevaTrans )
{
    var oRegistro = new VRegister(theRoot);
    oRegistro.setTable("miAplicacion.vcd/MAESTROS");
    oRegistro.setField("NAME", "Nombre maestro");

    //Dar de alta registro
    oRegistro.addRegister();
};

// Si se creó una nueva transacción se finaliza
if ( nuevaTrans )
{
  theRoot.commitTrans();
};

6. Buscar un registro y enviarlo a la salida de un proceso con salida ficha

// Se importa la clase de búsqueda para usar sus funciones
importClass( "VQuery" );

//Inicializamos un objeto de lista y uno de ficha
var lista = new VRegisterList(theRoot);
var ficha = new VRegister(theRoot);

// Se crea el objeto búsqueda
var bus = new VQuery( theRoot );
bus.setQuery( "prueba_tcp/MAESTROS");

//Se dispara la búsqueda
if ( bus.exec() )
{	
	//Se añaden los registros encontrados al objeto de lista
	lista= bus.result();
	
	//Se lee la primera ficha de la lista y se añade a la salida del proceso
	var ficha =  lista.readAt(1);
	theRegisterOut.copyFrom(ficha);
}

7. Alta de ficha

// Se controla si ya existe una transacción en curso para no crear una nueva transacción  
var nuevaTrans = false;
var hayTrans = theRoot.existTrans();
if ( hayTrans == false ) 
{
  var nuevaTrans = theRoot.beginTrans( "Nuevo artículo" )
};

// Si hay transacción se crea el nuevo registro
if ( hayTrans || nuevaTrans )
{
    var oRegistro = new VRegister(theRoot);
    oRegistro.setTable("velneo_verp_2_dat/ART_M");
    oRegistro.setField("NAME", "Artículo 22");

    //Dar de alta registro
    oRegistro.addRegister();
};

// Si se creó una nueva transacción se finaliza
if ( nuevaTrans )
{
  theRoot.commitTrans();
};

8. Cargar un registro y modificarlo

//Inicializamos variables

var lista = new VRegisterList(theRoot);
lista.setTable("transacciones_js_data/MAESTROS");
var registro = new VRegister(theRoot);
registro.setTable("transacciones_js_data/MAESTROS");

//Cargamos el registro a modificar
lista.load("ID", [1]);

//Comprobamos si se han encontrado registros
if (lista.size() > 0)
{
	// Se controla si ya existe una transacción en curso para no crear una nueva transacción  
	var nuevaTrans = false;
	var hayTrans = theRoot.existTrans();
	if ( hayTrans == false ) 
	{
	  var nuevaTrans = theRoot.beginTrans( "Modificar" )
	};

	// Si hay transacción se crea el nuevo registro
	if ( hayTrans || nuevaTrans )
	{
		 var registro = lista.readLockingAt(0);
		 registro.setField( "NAME", "Modificado" );
				registro.modifyRegister();
				if (!registro.isOK())
				{
					alert("No se ha podido modificar el registro");
				}
	}
}

9. Cargar una ficha y borrarla

//Inicializamos variables

var lista = new VRegisterList(theRoot);
lista.setTable("transacciones_js_data/MAESTROS");
var registro = new VRegister(theRoot);
registro.setTable("transacciones_js_data/MAESTROS");

//Cargamos el registro a modificar
lista.load("ID", [1]);

//Comprobamos si se han encontrado registros
if (lista.size() > 0)
{
	// Se controla si ya existe una transacción en curso para no crear una nueva transacción  
	var nuevaTrans = false;
	var hayTrans = theRoot.existTrans();
	if ( hayTrans == false ) 
	{
	  var nuevaTrans = theRoot.beginTrans( "Modificar" )
	};

	// Si hay transacción se borra el registro
	if ( hayTrans || nuevaTrans )
	{
		 var registro = lista.readLockingAt(0);
		 registro.deleteRegister();
				if (!registro.isOK())
				{
					alert("No se ha podido borrar el registro");
				}
	}
}