Búsqueda

Es el objeto que sirve para realizar consultas en las tablas de datos. Para crear una búsqueda seleccionar la opción nuevo objeto/búsqueda del menú objetos de Velneo vDevelop.

Las propiedades de una búsqueda son:

Identificador

Etiqueta alfanumérica que identifica de forma unívoca una búsqueda dentro del proyecto de aplicación. Este identificador será el que usemos para referenciarla en otras propiedades de otros objetos.

El identificador constará de mayúsculas y números exclusivamente. Al identificar de forma unívoca una búsqueda no puede haber duplicidad.

Nombre

Etiqueta alfanumérica que servirá como descriptor de la búsqueda. Se usará para presentar información de la búsqueda en objetos y en los inspectores.

Podemos definir una etiqueta por cada idioma presente en el proyecto.

Estilos

Podemos definir el estilo privado que limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.

Comentarios

Esta propiedad nos permite documentar el uso de la búsqueda.

Tabla asociada

Tabla de un proyecto de datos heredado sobre la que se va a realizar la búsqueda.

Formulario

Si hemos diseñado un formulario para petición de datos a buscar, lo seleccionaremos en esta propiedad. El formulario deberá tener su origen en la misma tabla que la búsqueda.

Invertir lista

Permite hacer que se muestre el resultado de la búsqueda en orden inverso.

Fórmula filtro

Permite especificar una condición de filtrado secuencial, una fórmula condicional que deberá cumplir cada registro para ser incluido en la lista final de registros. El filtro se establecerá mediante una fórmula que podremos escribir usando el asistente para edición de fórmulas. Para ello pulsar el botón que aparece al editar esta propiedad.

Componente de búsqueda

Las búsquedas están compuestas por componentes de búsqueda que permiten definir tanto el índice o índices por los que se realizará la búsqueda como el modo en el que ésta será realizada.

Identificador

Etiqueta alfanumérica que identifica de forma unívoca un componente de búsqueda dentro del proyecto de aplicación. Este identificador será el que usemos para referenciarla en otras propiedades de otros objetos.

El identificador constará de mayúsculas y números exclusivamente. Al identificar de forma unívoca un componente búsqueda no puede haber duplicidad dentro de la misma búsqueda.

Nombre

Etiqueta alfanumérica que servirá como descriptor del componente de búsqueda. Se usará para presentar información del mismo en objetos y en los inspectores.

Podemos definir una etiqueta por cada idioma presente en el proyecto.

Estilos

Podemos definir el estilo privado que limita el acceso del usuario final al sub-objeto desde puntos donde no se haya programado el acceso al mismo.

Comentarios

Esta propiedad nos permite documentar el uso del componente.

Mezcla

En búsquedas en las que se declare más de un componente, en este parámetro especificaremos la forma de combinar la lista resultante de la ejecución del componente en curso con la del anterior. Hay tres formas de combinar:

Cruzar

La lista final estará compuesta por los registros que se repiten en las dos listas.

Añadir

El resultado es una lista con los registros que pertenecen al primer componente o al segundo. Si un registro pertenece a los dos componentes, sólo aparecerá una vez en la lista final.

Quitar

El resultado es una lista con los registros que pertenecen al primer componente quitando los que también pertenecen al segundo.

Condición activo

Permite especificar una condición para que el componente sea ejecutado. La condición se establecerá mediante una fórmula que podremos escribir usando el asistente para edición de fórmulas. Para ello pulsar el botón que aparece al editar esta propiedad.

Grupo índices

Permite especificar qué tipo de índices usaremos para la búsqueda. Los valores posibles son:

Normal

Usaremos un índice de la propia tabla.

Complejos

Usaremos un índice complejo.

Índice

Esta propiedad nos permite seleccionar el índice de la tabla asociada a la búsqueda por el que se buscará en ese componente. En función del valor que hayamos especificado en la propiedad anterior podrá ser, o bien un índice normal de tabla, o bien, un índice compuesto.

Modo

Permite definir el modo en el que se realizará la búsqueda por el índice seleccionado en el componente. Hay tres modos posibles:

Todo el fichero

El resultado de la búsqueda serán todos los registros de la tabla (exceptuando los excluidos debido al filtro secuencial establecido en la propiedad fórmula filtro de la búsqueda, si está definido). En este caso, como es lógico, no es necesario especificar un formulario para pedir datos ni declarar los datos iniciales de búsqueda.

Parte izquierda de la clave

Realiza la búsqueda de los registros cuya parte izquierda de la clave coincida con la introducida por el usuario en el formulario para pedir datos o lo que haya establecido el desarrollador en la resolución del componente de la búsqueda.

Se pueden especificar tantos campos (partes) de la clave como sean necesarios. Es posible establecer un valor inicial para ese modo de búsqueda en la propiedad Límite inicial que se muestra al seleccionar este modo de búsqueda.

Si no se edita la parte del componente no se utiliza en la búsqueda por parte izquierda y permite localizar todos los registros sin que afecte a esa parte del componente.

Una vez que se accede con el cursor a la edición de la resolución de un componente, aunque no se grabe nada queda en un estado de resuelto, en cuyo caso buscará solamente los registros con valores cero o vacíos.

Entre límites

Realiza la búsqueda de los registros cuya clave esté comprendida entre dos límites, inicial y final. Estos límites podrán ser establecidos o bien en el formulario para pedir datos de la búsqueda o bien de forma directa en las propiedades límite inicial y límite final que se muestran al seleccionar este modo de búsqueda.

Es posible declarar variables locales en la búsqueda. Para ello, estando activo el panel de propiedades de la búsqueda, seleccionar la opción Variable del panel de subobjetos de Velneo vDevelop.

El valor inicial que es posible establecer en los modos de búsqueda Parte izquierda de la clave y Entre límites podrá ser tanto un dato constante, una variable local, una variable global o un campo.

En una búsqueda con varios componentes que se cruzan, si queremos que el resultado final esté ordenado por un campo en concreto, lo que tendremos que hacer es usar el comando de ordenación. Esto es así porque en cada cruce el resultado acaba ordenado en función del componente que más registros tenga en ese momento: la lista resultante del componente anterior o la del nuevo componente. Esta forma de operar hace que no sea posible que podamos determinar a priori el orden final de la lista.

Pese a que sea requerida esta ordenación, el rendimiento en conjunto de la búsqueda y la ordenación es mayor que si se hiciese en cada cruce de componentes, por lo que no debemos dudar en usarla cuando así sea requerido.

En procesos, funciones o manejadores de evento que disparen búsquedas, usaremos el comando Ordenar lista, en acciones que disparen búsquedas, incluiremos entre la búsqueda y el objeto de lista de la salida un proceso, que ordene y añada la lista a la salida, con origen y destino lista de la tabla de la búsqueda.

NOTA: En las búsquedas entre límites se deben resolver tanto el límite inicial como el límite final, no se pueden dejar vacíos.

Cómo pasar información de un formulario de petición de datos de búsqueda a la búsqueda

En el formulario de petición de datos de asociado a una búsqueda podremos editar:

En el formulario editaremos los campos deseados y en la búsqueda los usaremos para resolver los límites de los componentes de búsqueda que correspondan. Por ejemplo, si queremos realizar una búsqueda por el índice WORDS de una tabla maestra (índice que indexa las palabras del campo NAME), podremos editar el campo NAME en el formulario y usarlo para resolver el límite inicial del componente de búsqueda de dicho índice.

En el formulario declararemos y editaremos las variables locales que necesitemos y en la búsqueda crearemos variables locales idénticas (mismo identificador y tipo) y las usaremos para resolver los límites de los componentes que corresponda. Por ejemplo, para la realización de una búsqueda entre límites de fecha en el formulario de búsqueda podríamos declarar y editar una variable local de tipo fecha llamada FECHA_INI y otra llamada FECHA_FIN y en la búsqueda crear dos variables locales idénticas y usarlas para resolver los límites inicial y final del componente de búsqueda del índice FECHA.

Última actualización