La clase VQuery representa una búsqueda en ejecución. Nos permite ejecutar búsquedas. Construimos un objeto VQuery pasándole el objeto VRoot en curso y le indicamos la búsqueda a ejecutar con la función setQuery. Una vez inicializado el objeto ya podemos usar el resto de funciones (salvo result): le pasamos contenido a las variables locales de la búsqueda con setVarLocal (si lo requiere) y la ejecutamos con la función exec. Ahora ya podemos recoger los resultados con la función result, que nos devuelve un objeto de la clase VRegisterList con el cual podemos operar.
Crea una instancia de objeto de la clase VQuery. Debe ejecutarse la función setQuery() para asignarle la búsqueda.
Parámetros:
root: VRoot que indica el objeto VRoot en curso del que se hará uso, normalmente theRoot.
Funciones de operaciones
Boolean exec()
Ejecuta la búsqueda y devuelve true si finaliza correctamente.
VRegisterList result()
Devuelve un objeto VRegisterList con la lista de registros encontrados en la búsqueda.
Inicialización
void setQuery( String szIdRefQuery )
Fija la búsqueda que se asocia al objeto.
Parámetros:
szIdRefQuery: string que contiene el identificador referencia (IdRef=Alias_Proyecto/Id_Búsqueda) de la búsqueda.
Ejemplos
1. Ejecutar una búsqueda sin parámetros
// --------------------------------------------------------------------------------
// Ejemplo de búsqueda sin parámetros
// --------------------------------------------------------------------------------
// Se importa la clase para usar sus funciones
importClass("VQuery");
// Se crea el objeto búsqueda
var bus = new VQuery(theRoot);
bus.setQuery("vbaseUsuariosApp/USR_GRP_NOM");
// Se ejecuta la búsqueda y los registros encontrados se añaden a la salida
if (bus.exec())
{
// Le pasamos los resultados a la lista de salida
theRegisterListOut.append(bus.result());
};
2. Ejecutar una busqueda con parámetros
// --------------------------------------------------------------------------------
// Ejemplo de búsqueda con parámetros
// --------------------------------------------------------------------------------
// Se importa la clase para usar sus funciones
importClass("VQuery");
// Se crea el objeto búsqueda
var bus = new VQuery(theRoot);
bus.setQuery("VJS_APP/USR_GRP_ENT_NAM");
// Se alimentan los parametros de búsqueda
bus.setVar("NOM_DES", "VJS");
bus.setVar("NOM_HAS", "VJSzzzzzzzzzzzzzzz");
// Se ejecuta la búsqueda y los registros encontrados se añaden a la salida
if (bus.exec())
{
// Le pasamos los resultados a la lista de salida
theRegisterListOut.append(bus.result());
};
3. Lanzar una búsqueda con datos solicitados desde un formulario
// -----------------------------------------------------------------
// Lanzar una búsqueda con los datos solicitados desde un formulario
// -----------------------------------------------------------------
importClass("VQuery");
//Creamos el formulario
var formulario = new VDataViewDialog(theRoot);
formulario.setDataView(VObjectInfo.TypeForm, "49z6dckf.vca/DUMMY_PEDIR_DATOS")
//Mostramos el formulario
if(formulario.exec())
{
//Leemos el valor de las fechas que introducimos en el formulario
fechaDesde = formulario.varToDate("FCH_DES");
fechaHasta = formulario.varToDate("FCH_HAS");
//Si los datos no son vacíos
if ((fechaDesde != null) && (fechaHasta != null))
{
//Creamos el manejador de la búsqueda
var busqueda = new VQuery(theRoot);
//Asignamos la búsqueda a utilizar
busqueda.setQuery("49z6dckf.vca/VQUERY");
//Asignamos los valores adquiridos previamente
busqueda.setVar("FCH_DES", fechaDesde);
busqueda.setVar("FCH_HAS", fechaHasta);
//Ejecutamos la búsqueda
if(busqueda.exec())
{
//Retornamos la lista de resultados
theRegisterListOut.append(busqueda.result())
};
};
};