30
Velneo vDevelop
VRegisterList
Los objetos de esta clase representan una lista de fichas de una tabla. Dispone de funciones de manejo de la lista y sus items pudiéndose obtener objetos de la clase VRegister por index, en modos lectura y lectura con bloqueo si vamos a modificar.
Las funciones del navegante devuelven otro objeto clase VRegisterList con la lista del maestro o histórico.

Funciones

Constructor
Función
VRegisterList( VRoot root )
Inicialización
Retorno
Función
void
setTable( String szIdRefTable )
Generales
Retorno
Función
Boolean
setTitle( String title )
String
title()
De Api de tabla
Retorno
Función
De lista & ítems
Retorno
Función
void
append( VRegister register )
void
append( VRegisterList registerList )
void
clear()
void
cross( VRegisterList registerList )
void
invert()
Boolean
load( String szIdIndice, Array aKeyPartsResol )
Array[VRegisterList]
multiSplit( String szIdCompuestoCampo )
Number
pos()
VRegister
readAt( Number nIndex )
VRegister
readLockingAt( Number nIndex )
void
remove( VRegister register )
void
remove( VRegisterList registerList )
void
removeAt( int nIndex )
Number
size()
void
sort( Array aszIdCompuestoCampo )
void
sort( String szIdCompuestoCampo )
De navegante
Retorno
Función
loadMasters( String szIDPrimarioCampo )
loadPlurals( String szIDHistorico )
Varias
Retorno
Función
Boolean
runProcess( String szIdRefProcess )
Serialización
Retorno
Función
Boolean
loadFromData( VByteArray buffer )
Boolean
loadFromFile( String path )
Boolean
saveToFile( String path )
De JSON
Retorno
Función
VariantMap
toJSON( Array aszIDs )

Documentación de funciones

Constructor

VRegisterList( VRoot root )

Constructor del objeto VRegisterList.
Parámetros:
  • root: objeto VRoot, normalmente usaremos theRoot.

Inicialización

void setTable( String szIdRefTable )

Asigna la tabla al objeto VRegisterList 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.

Funciones generales

Boolean setTitle( String title )

Establece un título para la lista que podemos usar de forma interna para controlarla.

String title()

Devuelve el título de la lista que hayamos establecido.

Funciones de Api de tabla

VTableInfo tableInfo()

Devuelve un objeto VTableInfo de la tabla de la lista de registros.

Funciones de lista & ítems

void append( VRegister register )

Añade un registro a la lista. Equivale al comando de instrucción "Cesta: añadir ficha a la cesta".
Parámetros:

void append( VRegisterList registerList )

Añade una lista a la lista. Equivale al comando de instrucción "Cesta: añadir lista a la cesta".
Parámetros:
  • registerList: objeto de la clase VRegisterList.

void clear()

Limpia la lista de registros. Equivale al comando de instrucción "Cesta: limpiar".

void cross( VRegisterList registerList )

Cruza la lista de registros con la lista en curso. En la lista en curso sólo quedarán los registros coincidentes. Equivale al comando de instrucción "Cesta: cruzar la lista de la cesta". Sólo hemos de quedarnos con la lista cruzada, la otra la tendremos que deshechar.
Parámetros:
  • registerList: objeto de la clase VRegisterList.

void invert()

Invierte el orden de los registros de la lista.

Boolean load( String szIdIndice, Array aKeyPartsResol )

Carga en el VRegisterList los registros encontrados en la búsqueda realizada con el índices y las resoluciones configuradas. Devuelve false si la búsqueda no ha podido ejecutarse por algún error y devuelve true si la búsqueda ha podido realizarse, aunque no haya encontrado ningún registro. Esta función es equivalente al comando de instrucción de Velneo cargar lista.
Parámetros:
  • szIdIndice: cadena que contiene el identificador del índice.
  • aKeyPartsResol: array que contiene las resoluciones de cada una de las partes del índice.

Array[VRegisterList] multiSplit( String szIdCompuestoCampo )

Multiparte la lista creando un array de VRegisterLists que contiene cada una de las listas resultantes.
Parámetros:
  • szIdCompuestoCampo: cadena que contiene el identificador compuesto del campo por el que se multiparte.

Number pos()

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

VRegister& readAt( Number nIndex )

Devuelve una referencia a un objeto de la clase VRegister que se genera internamente con el registro de la posición seleccionada.
Al ser una referencia a un registro interno, una segunda ejecución de readAt provocará que se destruya la referencia anterior y se cree otra nueva. Para guardar este registro debemos crear un nuevo VRegister y mediante la función copyFrom copiar el registro interno en el nuevo VRegister.
Ver ejemplo: 4. Creación de un nuevo VRegister para guardar el registro interno leído con readAt()
Parámetros:
  • nIndex: número que contiene la posición del registro en la lista. La primera posición es la 0.

VRegister& readLockingAt( Number nIndex )

Devuelve una referencia a un objeto de la clase VRegister que se genera internamente con el registro de la posición seleccionada. Este registro está bloqueado y permite realizar operaciones de base de datos contra el registro.
Al ser una referencia a un registro interno, una segunda ejecución de readAt provocará que se destruya la referencia anterior y se cree otra nueva. Para guardar este registro debemos crear un nuevo VRegister y mediante la función copyFrom copiar el registro interno en el nuevo VRegister.
Ver ejemplo: 4. Creación de un nuevo VRegister para guardar el registro interno leído con readAt()
Parámetros:
  • nIndex: número que contiene la posición del registro en la lista. La primera posición es la 0.

void remove( VRegister register )

Quita de la lista el registro. Esto no eliminar el registro de la base de datos, sólo de la lista. Equivale al comando de instrucción "Cesta: quitar ficha de la cesta".
Parámetros:

void remove( VRegisterList registerList )

Quita de la lista los registros de la lista que se pasa. En la lista en curso quedarán los registros no coincidentes. Esto no elimina los registros de la base de datos, sólo los quita de la lista.
Parámetros:
  • registerList: objeto de la clase VRegisterList.

void removeAt( int nIndex )

Quita de la cesta el registro de la posición indicada. Esto no eliminar el registro de la base de datos, sólo de la lista.
Parámetros:
  • nIndex: number que contiene la posición del registro en la lista

Number size()

Devuelve el número de registros que contiene la lista.

void sort( Array aszIdCompuestoCampo )

Ordena la lista de registros por los campos indicados en el array de identificadores que se indica como parámetro.
Parámetros:
  • aszIdCompuestoCampo: array de cadenas que contiene los identificadores del campo de la tabla o de sus enlazadas que se usarán para ordenar.

void sort( String szIdCompuestoCampo )

Ordena la lista de registros por el campo indicado.
Parámetros:
  • szIdCompuestoCampo: cadena que contiene el identificador del campo de la tabla o de sus enlazadas.
Las funciones de escritura en disco en tablas, cuando se trata de tablas en memoria requiere abrir transacción para que las operaciones se reflejen en la tabla.

Funciones de navegante

VRegisterList loadMasters( String szIDPrimarioCampo )

Devuelve la lista de registros maestros del campo enlace a maestro. Devuelve los maestros sin repetición, aunque varios registros apunten al mismo maestro sólo lo devuelve una vez. Equivale al comando cargar maestros y a navegar a maestros.
Parámetros:
  • szIDPrimarioCampo: cadena que contiene el identificador del campo con enlace a tabla maestra.
Este comando está optimizado de modo que se pasa la lista de registros al servidor para que la carga de sus maestros se realice en 3er plano, excepto en el caso de las tablas en memoria, que se hará en primer plano.

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 de la lista de registros actual. Equivale al comando de instrucción de proceso de Velneo cargar plurales y a navegar a plurales del menú de lista de vClient.
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 y mediante la función append añadir a esta nueva lista los registros de la lista interna devuelta por loadPlurals().
Este comando está optimizado de modo que se pasa la lista de registros 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.
Ver ejemplo: 5. Creación de VRegisterList para guardar la lista interna obtenida con loadPlurals()
Parámetros:
  • szIDHistorico: cadena que contiene el identificador del plural.

Funciones varias

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").

Serialización

Boolean loadFromData( VByteArray buffer )

Carga en el objeto de la clase VRegisterList una lista de registros previamente serializados en un byte array con la función saveToData().
La función devuelve true si la carga se ha realizado correctamente.
Si el VRegisterList no tiene asignada una tabla esta función se encarga de asignarle automáticamente la tabla y luego le añade los registros a la lista.
Parámetros:
  • buffer: objeto de la clase VByteArray que contiene los registros serializados.

Boolean loadFromFile( String path )

Carga en el objeto de la clase VRegisterList una lista de registros previamente serializados en un fichero en disco con la función saveToFile().
La función devuelve true si la carga se ha realizado correctamente.
Si el VRegisterList no tiene asignada una tabla esta función se encarga de asignarle automáticamente la tabla y luego le añade los registros a la lista.
Parámetros:
  • path: senda del fichero en disco que contiene los registros serializados.

VByteArray saveToData()

Almacena en un objeto de la clase VByteArray la serialización de la lista de registros que contiene el objeto de la clase VRegisterList.

Boolean saveToFile( String path )

Almacena en un fichero en disco la serialización de la lista de registros que contiene el objeto de la clase VRegisterList.
Parámetros:
  • path: senda del fichero en disco donde se almacenarán la lista de registros serializados, si el fichero no existe se crea y si existe se limpia.

Funciones de JSON

VariantMap toJSON( Array aszIDs )

Convierte una lista de registros 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 lista.
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 VariantMap 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 VariantMap del modo siguiente:
Ejemplo 1:
1
var operacion = theRegisterListIn.toJSON( [] );
2
var bOk = operacion.ok;
3
var szJson = operacion.json;
4
var errores = operacion.errors;
Copied!
Ejemplo 2:
1
var operacion = theRegisterListIn.toJSON( ["ID","NAME", "PVP"] );
2
var bOk = operacion["ok"];
3
var szJson = operacion["json"];
4
var errores = operacion["errors"];
Copied!

Ejemplos

1. Navegante / Plurales de todos

1
var facturas = theRegisterListIn.loadPlurals("FACTURAS");
2
theRegisterListOut.append(facturas)
Copied!

2. Recorrer la lista modificando

1
if (theRoot.beginTrans("Titulo"))
2
{
3
for( var x=0; x < theRegisterListIn.size(); x++)
4
{
5
var registro = theRegisterListIn.readLockingAt(x);
6
7
if (registro.isOK())
8
{
9
registro.setField( "IDCAMPO1", dato );
10
registro.setField( "IDCAMPO2", hoy );
11
.....
12
registro.modifyRegister();
13
if (!registro.isOK())
14
... //mensaje de error
15
}
16
}
17
// No hace falta hacer theRoot.submit(), lo hace Velneo automáticamente
18
}
Copied!

3. Multipartir

1
var curView = theMainWindow.currentView();
2
3
if ( curView )
4
{
5
if ( curView.root() )
6
{
7
var pvc = curView.root().dataView();
8
9
if ( pvc.isListType() )
10
{
11
var lista = new VRegisterList( theRoot );
12
pvc.getList( lista );
13
14
var aListas = lista.multiSplit("SEXOS.NAME");
15
16
for( x in aListas )
17
{
18
var newView = theMainWindow.addDataView( VObjectInfo.TypeQmlList, "CINE/LISTAQML", aListas[x] );
19
newView.setTitle( aListas[x].title() + " " + aListas[x].size() );
20
}
21
}
22
}
23
}
Copied!

4. Creación de un nuevo VRegister para guardar el registro interno leído con readAt()

1
var registro1 = new VRegister( theRoot );
2
var registro2 = new VRegister( theRoot );
3
4
registro1.copyFrom( lista.readAt( 0 ) );
5
registro2.copyFrom( lista.readLockingAt( 1 ) );
6
7
// Así tendremos guardados los registros en registro1 y registro2 sin que le afecten otros readAt() o readLockingAt().
Copied!

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

1
var listaPlural1 = new VRegisterList( theRoot );
2
listaPlural1.setTable( "aliasApp/TABLA" );
3
4
var listaPlural2 = new VRegisterList( theRoot );
5
listaPlural2.setTable( "aliasApp/TABLA" );
6
7
listaPlural1.append( theRegisterListIn.loadPlurals( "PLURAL1" ) );
8
listaPlural2.append( theRegisterListIn.loadPlurals( "PLURAL2" ) );
9
10
// Así tendremos en listaPlural1 y listaPlural2 los registros plurales sin que le afecten otros loadPlurals().
Copied!
Última actualización 3mo ago