Sincronizaciones en Menús

Una de opciones de menú que se suele utilizar es la búsqueda, cualquiera de ellas, Busqueda que devuelve una rejilla con los registros encontrados ( excepto si no hay ninguno ), Busqueda permite vacío que nos devuelve la rejilla aunque sea vacía de contenido o la Búsqueda formulario que nos devuelve el resultado en una rejilla si encuentra más de un registro o en el formulario asignado como de modificación en la rejilla asociada a la búsqueda si sólo encuentra un elemento por ese criterio..

Las búsquedas son una de las pistolas que pueden lanzar dos balas. La primera bala es la búsqueda en sí y la segunda puede ser un formulario, un histórico , un gráfico o una página web. La más usada es posiblemente el histórico. Cuando nos movemos por los registros de la búsqueda , va mostrando los valores del histórico de la ficha marcada. Este es un primer paso de sincronización entre dos componentes, una búsqueda y el histórico.

Pero en muchos casos necesitamos movernos por registros de una tabla y que varíen los registros de otra relacionada con

ella sin que la relación sea directamete de maestro->histórico.

Esto lo podemos solucionar de una manera sencilla con la sin

cronización de búsquedas en un Menú. En los menús, podemos sincronizar varias cosas entre sí: variables globales, búsquedas, casilleros y páginas html. Empecemos por un caso sencillo.

Tenemos una aplicación en la que tenemos una estructura Cabecera de factuas , Lineas de Facturas, Clientes y Artículos.

En la tabla Cabeceras hemos creado un campo fecha y su índice correspondiente, acepta repetidas

Esquema

Lo que vamos a hacer primero es crear una sincronización en un menú, con una varible global fecha, en memoria, y una búsqueda de CFacturas por fecha.

Variable Fecha

El índice por el que vamos a buscar las facturas es la FECHA, de forma parte izquierda de la clave, y resolviendo por el valor de la variable $FECHA$.

Nos queda colocar los controles en un Menú que llamaremos Sincronización.

Barra del menú

En la barra encontramos los distintos controles que podemos usar. En nuestro caso usaremos un Calendario, que irá asociado a la variable $FECHA$ y una búsqueda que será la que acabamos de crear

También podríamos colocar un control de edición de variable, pero queda mejor en ejecucíón el control calendario.

 Una vez que los dos controles están colocados, tenemos que ver qué control manda.Menú sicronizado

Al variar la $FECHA$ tendrán que cambiar las facturas y mostrarnos las que sean de esa fecha determinada.

Luego $FECHA$ sincroniza a la búsqueda . Con un único click del botón izquierdo del ratón hacemos que el calendario coja el foco.

En la barra de herramientas, vamos a la opción Controles–>sincronizar y de las opciones que aparecen escojemos la búsqueda de facturas a fecha.

Con esto ya tenemos sincronizada la variable con la búsqueda.

Este caso es el más sencillo. Veamos a continuación cómo sincronizar dos búsquedas entre sí.

Tenemos el caso de de dos búsquedas, una de clientes ordenadas alfabéticamente ( índice Nombre ) y otra de todas las facturas por cliente (índice Clientes ) y queremos que al movernos por los registros de clientes, varíen las facturas y nos muestre sólo las de ese cliente seleccionado en la rejilla. El método es siempre el mismo.

Primero saber cuál de las dos búsquedas “manda ” sobre la otra. Al variar el cliente cambian las facturas.

Segundo crear una variable global en memoria que guarde en qué registro de la que manda estamos. Lo habitual y más lógico es guardar el códigod de la ficha.

Tercero. Un proceso con origen ficha de la tabla principal cuya única linea haga que se guarde en la variable global el valor del índice de la ficha.

Cuarto: indicarle a la rejilla usada en la búsqueda principal que tiene que lanzar ese proceso al cambiar de ficha ( flag “Cambio selección simple ” en la rejilla )

Quinto. Sincronizar la primera con la segunda búsqueda en el menú.

En nuestro ejemplo: la búsqueda de clientes ” manda ” o más correctamente SINCRONIZA  a la búsqueda de facturas. Una variable global en la que guardar el código del clientes seleccionado. Un proceso con origen ficha de Clientes en el que modificamos la anterior variable con el valor del campo código. Este proceso lo asignaremos como el que hay que disparar al activar el flag ” Cambio selección simple ” en la rejilla asociada a la búsqueda de Clientes

La búsqueda de Facturas la haremos por el índice Clientes, forma de buscar, parte izquierda de la clave y como límite inicial de la búsqueda, la variable en donde hemo guardado el código del cliente.

 

Por último sólo nos queda hacer que la búsqueda, la de clientes, SINCRONIZA la segunda búsqueda de Cabeceras de Facturas.

Si necesitásemos sincronizar esta segunda búsqueda con otra tercera, solo tenemos que seguir los pasos explicados para conseguirlo.

De este modo en un solo menú podemos tener tantas sincronizaciones como necesitemos.

Anuncios

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..

3 Responses to Sincronizaciones en Menús

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

  2. césar says:

    eres lo máximo gracias por el apoyo desinteresado estaré pendiente de mas ayuda gracias

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 )

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 )

Google+ photo

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

Conectando a %s

A %d blogueros les gusta esto: