Ejemplo: Localizar submaestros


([N1] JorgeVelasco) #1

Buenas.

 

Os explicaré como he montado un localizador de submaestro casero. También servirá para seleccionar un registro de una lista previamente filtrada

Seguro que hay fomas más sencillas y que esta es mejorable. No dudéis en corregirme en lo que esté haciendo mal. Por lo menos espero que valga para coger ideas

En este ejemplo localizaremos un contacto de un proveedor en un documento de compra.

Necesitaremos una variable global para guardar el valor del proveedor COD_PROV, otra para el valor del contacto COD_CONT y otra para escribir por lo que queramos filtrar posteriormente ALFA_BUS

1.- Tendemos una rejilla CONTACTOS_LOC de la tabla de contactos sin formularios de alta, modif y baja. En esta rejilla tendré un evento que se ejecutará al "item:doble click". En este proceso leeré la ficha seleccionada y modificaré la var. global COD_CONT con el valor #ID

2.- En la tabla de contactos tendré un índice PROVEEDORES y un índice llamado BUSQUEDA. Este último índice es por Trozos y aquí pondré todos los campos por los que querré filtrar

3.- Crearemos una búsqueda BUS_CONTACTOS con los índices que hemos creado anteriormente. El índice PROVEEDORES será por parte izquierda y el límite inicial será la var. global COD_PROV. El índice BUSQUEDA estará condicionado a que la variable ALFAB:BUS tenga valor y de límite inicial estará ella misma

4.- Un proceso LOCALIZ_CONTACT sin origen de entrada y la salida será la lista de Contactos. En este proceso lanzaré la búsqueda BUS_CONTACTOS y añadiré la lista a la salida

5.- Crearemos un formulario sin tabla de origen (ver imagen).

En este formulario tendremos: La variable global ALFAB_BUS, una variable que crearemos CONTACTO de tipo numérico, un control objeto CONTACTOS, dos botones para dar altas y modificar y varios eventos.

El control objeto tendrá el proceso LOCALIZ_CONTACT y la rejilla CONTACTOS_LOC

Eventos:

     - INICIALIZAR.  Se inicializan a cero las variables COD_CONT y ALFAB_BUS. Está última se pone en blanco. Y recalcularé el control CONTACTOS

     - REFRESCO se ejecutará con la señal "tecla soltada". Este evento sólo tiene que refresque el objeto CONTACTOS. Con este evento consigo que cada vez que escribo algo en la variable global me recalcule la lista de contactos

     - ACEPTAR se ejecutará con "item_doble click". En este proceso con SET daremos valor a la variable creada en el formulario con el valor de la variable global $COD_CONT. La otra línea del proceso será "Interfaz:Aceptar"

     - ALTA FICHA se ejecutará desde eñ botón que usemos en el formualrio para dar altas (ver imagen)

     - VER FICHA se ejecutará en el otro botón. Aquí tengo "Interfaz: Procesar control (CONTACTOS)" y "Modificar ficha seleccionada con formulario"

6.- Desde el formulario de Pedidos de compra crearemos un evento que o lo ejecutamos desde un botón, o si queremos lanzarlo desde un menú. Esa acción deberá disparar una señal que después recogeremos en el formulario.

En el proceso modificamos la var. global COD_PROV con el valor del campo proveedor del pedido y crearemos un objeto ( el fomulario) y recuperaremos el valor del código del contacto para modificarlo en el pedido (ver imagen)

 

Espero no haberos soltado mucho rollo.

Un saludo.

 

Jorge Velasco

SISTEMA BINARIO

 

 

 

 


([N4] velavisual) #2

@jovefer,

 

Gracias por la información. Voy a archivarla en la gestión documental personal sobre v7 que dispongo.

Como ahora se pueden indexar los objetos textos, es viable buscar y consultar cualquier artículo de estas características.

 


(cabella) #3

Que hay Jorge!

Buen post ... si señor ... le estás cogiendo el gustillo al foro eeeeeh???





([N4] ns) #4

Muy util, gracias jovefer.