filtrar localizador subindexado


([N3] Servinfor) #1

A ver si me se explicar, tengo una tabla articulos donde he creado un indice indexado con los campos familia subfamilia marca y nombre

He creado un localizador con ese indice y un formulario de busqueda donde mediante localizadores a familias subfamilias y marcas relleno las variables

En el formulario de busqueda (que apunta a la tabla articulos) si ademas de rellenar las variables relleno el valor de los campos familias subfamilias y marcas entonces se me actualiza la rejilla del localizador, si no los relleno no lo hace

Mi problema es que quiero poder buscar por un solo criterio, por marca, por familia, por 2 criterios o a lo mejor por los tres y la rejilla del localizador sólo se me actualiza si relleno los 3 campos, con uno sólo no lo hace

Como puedo hacer que la rejilla del localizador se vaya actualizando cuando rellene solo 1, 2 o los 3 criterios?


([N3] pacosatu) #2

Hola Servinfor.

Cuando dices que no se actualiza la Rejilla me imagino que te refieres a que no muestra ningún registro.
Tienes que tener en cuenta lo siguiente:

  • La subindexación funciona solo cuando las partes que resuelves están a la izquierda del Índice.
    Así en tu caso tienes familia subfamilia marca y nombre. Siempre deberás rellenar estas combinaciones.
    1º familia -> devolverá todos los artículos de la familia
    2º familia subfamilia -> devolverá todos los artículos de la familia y subfamilia
    3º familia subfamilia marca -> devolverá todos los artículos de la familia, subfamilia y marca
    4º familia subfamilia marca nombre -> devolverá un solo artículo nombre (esto no es subindexación)

Por ejemplo la opción:
5º subfamilia -> no funcionará porque hay una parte (familia) más a la izquierda que no está resuelta.

Para tu caso, monta una Búsqueda normal con los 4 componentes.
Saludos
Paco Satué


([N3] Servinfor) #3

Hola muchas gracias por la aclaración solo una cosa, pues lo que trataba de resolver es esto por si me pudieras arrojar luz de como hacerlo

Tengo un formulario para hacer un presupuesto, en el formulario he puesto una rejilla con las lineas del presupuesto Cuando creo una linea de presupuesto quiero poder elegir de los articulos mediante esa busqueda con 4 componentes para lo que he creado un menu que me dispara un formulario donde elijo con localizadores las variables para familia, subfamilia, marca… y una rejilla bajo con la busqueda normal de esos 4 componentes

Al hacer doble click en la rejilla en el registro he hecho un evento que me alimenta una variable y la introduce en el registro de la linea de presupuesto como deseaba pero tengo que darle en el presupuesto a un boton “actualizar” que me refresca la rejilla y no se como evitarlo

Tambien tengo el problema que en las lineas del presupuesto al darle al boton menu para que me dispare el formulario de busqueda la linea del presupuesto no esta guardada, tengo que darle previamente a otro boton para guardarla porque sino la variable de la busqueda no le puedo decir el numero de registro al que tiene que ir

La operativa no es agil por eso intentaba a ver si con un localizador subindexado podía resolverlo pero veo que no Se te ocurre que puedo hacer? Gracias


([N3] pacosatu) #4

Hola Servinfor.

En los apenas 2 años que llevo con Velneo he aprendido algo importante: Velneo hace solo 10 cosas, pero esas 10 cosas las hace muy bien. Como intentes salirte de esas 10 cosas verás que programar deja de ser Life is Soft para ser un dolor de cabeza.

Solo te puedo decir que te limites a hacer las cosas tal como las hacen en los Tutoriales y cursos de Velneo. Una buena referencia es ayudavelneo.com donde encontrarás por ejemplo cómo montar Búsquedas con varios componentes.

En otros lenguajes más dinámicos hacer lo que planteas sería algo trivial pero con Velneo solo dispones de objetos estáticos que has debido de diseñar muy bien antes de empezar a programarlos o llegarás a situaciones como la que planteas.

Si la rejilla no se refresca significa que estás lanzando Manejadores o Acciones que no Actualizan la Lista asociada a esa Rejilla (necesitas un Recalcular). No uses localizadores subindexados cuando vas a buscar por todas las partes del Índice, monta una Búsqueda normal.

En definitiva, desde mi punto de vista yo replantearía el diseño de ese módulo y me limitaría a patrones de diseño que encajen en la estructura estática de Velneo.

Puedes probar lo siguiente para no amargarte el día:

  • Tienes el formulario de edición de la Línea de presupuesto FRM_PRE_EDI
  • Tienes un botón en FRM_PRE_EDI que ejecuta con “Disparar Objeto” un formulario de Búsqueda FRM_BUS
  • El formulario de Búsqueda FRM_BUS localiza el Artículo y lo guarda en la variable local ID_ART
  • El formulario de Búsqueda FRM_BUS obtiene un valor en la variable local VALOR_ART
  • El formulario FRM_PRE_EDI obtiene de FRM_BUS los valores ID_ART y VALOR_ART con Get variable local.
    De esta forma la Línea de presupuesto no debe estar guardada en disco en ningún momento.

Saludos
Paco Satué


([N3] Servinfor) #5

Ya te entiendo, muchas gracias por la explicacion y tienes razón hay que ceñirse a lo que se puede hacer