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 funcionesimportClass("VQuery");// Se crea el objeto búsquedavar bus =newVQuery(theRoot);bus.setQuery("vbaseUsuariosApp/USR_GRP_NOM");// Se ejecuta la búsqueda y los registros encontrados se añaden a la salidaif (bus.exec()){// Le pasamos los resultados a la lista de salidatheRegisterListOut.append(bus.result());};
2. Ejecutar una busqueda con parámetros
// --------------------------------------------------------------------------------// Ejemplo de búsqueda con parámetros// --------------------------------------------------------------------------------// Se importa la clase para usar sus funcionesimportClass("VQuery");// Se crea el objeto búsquedavar bus =newVQuery(theRoot);bus.setQuery("VJS_APP/USR_GRP_ENT_NAM");// Se alimentan los parametros de búsquedabus.setVar("NOM_DES","VJS");bus.setVar("NOM_HAS","VJSzzzzzzzzzzzzzzz");// Se ejecuta la búsqueda y los registros encontrados se añaden a la salidaif (bus.exec()){// Le pasamos los resultados a la lista de salidatheRegisterListOut.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 formulariovar formulario =newVDataViewDialog(theRoot);formulario.setDataView(VObjectInfo.TypeForm,"49z6dckf.vca/DUMMY_PEDIR_DATOS")//Mostramos el formularioif(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íosif ((fechaDesde !=null) && (fechaHasta !=null)) {//Creamos el manejador de la búsquedavar busqueda =newVQuery(theRoot);//Asignamos la búsqueda a utilizarbusqueda.setQuery("49z6dckf.vca/VQUERY");//Asignamos los valores adquiridos previamentebusqueda.setVar("FCH_DES", fechaDesde);busqueda.setVar("FCH_HAS", fechaHasta);//Ejecutamos la búsquedaif(busqueda.exec()) {//Retornamos la lista de resultadostheRegisterListOut.append(busqueda.result()) }; };};