Búsquedas con variables locales

Uno de los grandes cambios entre v6 y v7 son las variables. En la v6 casi todo pasaba por variables en memoria globales, y ahora en la v7 son las variables locales las grandes protagonistas.

Hasta el punto de no recomendar el uso de variables globales, salvo casos muy claros. Esta variables locales, han pasado a ser la forma natural y limpia de conectar valores entre procesos y objetos. Hoy vamos a explicar su uso con las búsquedas.

En las búsquedas se pueden definir variables locales, pero lo primero que nos preguntamos es ¿como les damos valor?.

Bien el caso más habitual es que la búsqueda tenga asociado un formulario, y resulta que todas las variables locales que tenga ese formulario, si coinciden en nombre con variables locales de la búsqueda su valor es enviado a ella. Por lo tanto lo único que tenemos que hacer es crear un formulario con variables locales del mismo nombre.

Vamos a desarrollar el ejemplo: Tenemos una tabla con los índices clásicos:

– ID.- Código

– NAME.- Alfabético

– WORDS.- Palabras

– PARTS.- Trozos

– MOD_TIM.- Fecha de modificación

y queremos hacer una búsqueda que no permita utilizar cualquiera de esos índices. En la búsqueda definimos las siguientes variables locales:

– ID.- Numérica, y nos permitirá buscar un código determinado

– NOM.- Alfabético, texto a buscar por los índices NAME, WORDS o PARTS.

– BUS_TIP.- Alfabético. Esta variable recibirá el tipo de búsqueda a realizar con el texto recibido en NOM. Vamos a permitir 4 tipos (A.- alfabético, P.- todas las palabras, G.- alguna palabra, T.- trozos)

– FCH_ON.- Booleana. Índica que queremos buscar por la fecha de modificación.

– FCH_DES.- Fecha. Fecha desde la que buscar

– FCH_HST.- Fecha. Fecha hasta

Ahora creamos los componentes de la búsqueda:

Identificador Nombre Mezcla Condición activo índice Modo Límite inicial Límite final
ID Código ID > 0 ID Parte izquierda ID
ORDEN ordenar por nombre Cruzar (ID = 0) & (isEmpty( NOM) ) & ( FCH_ON = 0 ) NAME Todo
ALFABETICO Parte izqda nombre ( BUS_TIP = “A” ) & ( isEmpty( NOM) = 0 ) NAME Entre límites NOM NOM + “zzzzzzz”
TROZOS Trozos del nombre Cruzar ( BUS_TIP = “T” )   & ( isEmpty( NOM) = 0 ) PARTS NOM
PAL_TODAS Todas las palabras Cruzar ( BUS_TIP = “P” ) & ( isEmpty( NOM) = 0 ) WORDS NOM
PAL_ALGUNA Alguna palabra Cruzar ( BUS_TIP = “G” ) & ( isEmpty( NOM) = 0 ) WORDS NOM
FCH_MODIF Fecha de modificación FCH_ON MOD_TIM Entre límites setDateTime(FCH_DES, “00:00:00”) setDateTime(FCH_HST, “23:59:59”)

Ahora creamos el formulario, con origen el de la misa tabla que la búsqueda. En él creamos las mismas variables locales que las creadas en la búsqueda, y ponemos los objetos visuales para que el usuario les de valor:

Pantalla de búsqueda

Para dar valor a la variable BUS_TIP, creamos tres botones de radio con los textos y valor correspondiente (T.- Trozos, P.- Palabras, G.- Alguna de las palabras. A.- Alfabético)

De la misma forma para el resto, os pongo las propiedades de un campo como ejemplo:

Asociando el formulario a la búsqueda ya tenemos una búsqueda mediante variables locales. Esto en v6 hubiese requerido de al menos cuatro variables globales (BUS_TIP, FCH_ON, FCH_DES y FCH_HST).

Anuncios

3 comentarios en “Búsquedas con variables locales

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s