Búsquedas en Velneo: un ejemplo sencillo.

A partir de una pregunta aparecida en el foro Oficial de Velneo intentaré explicar cómo hacer búsquedas sencillas con el vDeveloper.

Según expliqué aquí , los índices de una tabla nos permiten tener los datos indexados por varios criterios para luego poder acceder a esos registros mediante las búsquedas.

Supongamos un ejemplo muy sencillo. Tenemos una tabla de Facturas en la que hemos creado dos índices, el índice Código, el propio de Velneo con su característica de clave única y alimentado por el campo Código siguiente al último  y un índice Fecha aceptar repetidas y alimentado por el campo fecha de la Factura.

Vamos a hacer un objeo visual búsqueda en el que mediante un formulario de petición de datos, busquemos una factura concreta por su código. La metodología a seguir, sea cual sea el índice a utilizar es más o menos siempre la misma:

1. Creamos una variable global en la que introducir el dato concreto a buscar. En nuestro caso es el código, de tipo numérico, luego nuestra variable será de tipo numérico, con la misma longitud de rando o superior al campo código y con persistencia en memoria independiente de cada tarea en segundo plano. La llamaremos  FACTURA  ($FACTURA$)

2. Creamos un Formulario para Búsquedas en la tabla Facturas, y en él pondremos un texto estático «Factura a buscar» y un control de edición al que le asignaremos la variable $FACTURA$

3. Creamos una búsqueda de la tabla Facturas, índice Código, forma de búsqueda parte izquierda de la clave, contenido inicial del campo la variable $FACTURAS$

4 Formulario inicial de la búsqueda: el que acabamos de crear.

 busqueda.jpg

Nos quedaría crear una opción de menú con la que lanzar la búsqueda. En ejecución se nos presentará el formulario para pedirnos el código de la factura a buscar y nos devolverá una rejilla con la factura encontrada.

Añadámosle una funcionalidad más a la búsqueda. Supongamos que me interesa usar el mismo formulario para buscar también las facturas entre dos fechas determinadas. Para que nos valga para ambas búsquedas a la vez, usaremos una característica de los índices en las búsquedas que es la condición activa.

Sigamos los mismos pasos.

1.Creamos dos variables globales tipo fecha $Fecha ini$ y $Fecha fin$

2. En el formulario especial para búsquedas ponemos dos controles de edición para poder dar valores a ambas variables fecha.

3. A la búsqueda le añadimos un nuevo índice con mezcla cruzar, fecha, forma de búsqueda entre límites, límite inicial $Fecha ini$ y límite final $Fecha fin$. La mezcla cruzar nos permite concatenar varios índices en una sola búsqueda. Si los indices están cruzados, la lista mostrada será la que compartan ambos criterios de búsqueda. Es como un Y booleao, los que cumplen un criterio Y los que cumplen el otro.

cruzada.jpg

Usemos en el índice Fechas la condición de activo. Dicha condición al evaluarse su fórmula, hace que la búsqueda por ese índice se realice o no. Es decir si le ponemos una condición y se cumple, realizará la búsqueda con la mezcla que le hayamos indicado y de la forma que hayamos establecido. Lo más lógico en nuestro caso es que se realice entre fechas si se les dan valores a las dos variables globales    ( fCampoVacio( $FECHA-INI$)=0 ) & ( fCampoVacio( $FECHA-FIN$ )=0 ).

Lo mismo podríamos hacer para condicionar la búsqueda por el código  $FACTURA$ ! 0

Debemos por tanto forzar un contenido inicial a las variables cuando abramos el formulario de búsqueda, poner a cero $FACTURA$  y como vacías las dos fechas. Para ello , creamos un proceso con origen ficha de la tabla Factura. Sus tres lineas serán.

proceso.jpg

Tened en cuenta, que cuando se crea un proceso por primera vez, para que los camios se guarden, hay que salir por el icono de la puerta  , no cerrando con la X la ventana del proceso .

Por último nos posicionamos en el formulario especial para búsqueda y con la combinación Alt+Intro accedemos a su cuadro de propiedades y escogeremos este proceso como Proceso a ejecutar al crearse el formulario.

alcrearse.jpg

Ya tenemos hecha la búsqueda. Si queremos ir añadiendo índices a la misma, sólo tenemos que realizar los pasos y condicionar o no su uso, así como inicializando las variables en el proceso de apertura del formulario.

Acerca de Agustin
Velneoadicto. Tuve la grandísisma suerte de que me enseñaran los más grandes: Juan Muñoz-Cobos , Jesús Arboleya y Jesús Inclán..

5 Responses to Búsquedas en Velneo: un ejemplo sencillo.

  1. Nico says:

    clarito clarito. Además, las capturas de pantalla son muy explicativas.

    He visto que te gustan las plumas estilográficas! que hobby tan curioso, seguro que es un mundo.
    Un día me cuentas!
    Un saludo

  2. Agustin says:

    Me alegro de que te guste.
    Si, las plumas estilográficas son mi otra afición, en realidad una de muchas aficiones, pero la disfrturo mucho. De hecho, intento documentar a mano, todas las aplicaciones, al menos su análisis.
    Cuando tengas tiempo, te cuento lo que quieras.
    Un saludo

  3. Pingback: Búsquedas en Velneo: un ejemplo sencillo | Blog de Velneo

  4. JAVIER says:

    Hola, tengo una cuestion, yo hago una busqueda para buscar todas las facturas que pertencen a un cliente determinadom, en la rejilla original tengo 10 facturas para el cliente 1, pero cuando filtro por el cliente 1, solo me muestra el primer registro que encuentra… deberia traerlo todo.

  5. Pingback: Sincronizaciones en menús ( I ): dos búsquedas « Velneo: panta rei. Desde mi perspectiva

Deja un comentario