Aprende a usar índices complejos en Velneo V7

Joaquín Daneri después de ver el post sobre “¿Cómo integrar un panel de búsquedas avanzadas en un formulario?” quería ir un paso mas allá y planteaba en el foro de Velneo la siguiente cuestión:

Tengo tabla pedidos que está asociada a la tabla clientes y a su vez a localidades, y con este método me gustaría ver todas las lineas de pedidos que se solicitaron de una localidad x.

Además hoy marianoyana planteaba esta cuestión:

Tengo dos tablas, una de ellas es ficha y la otra Establecimiento, por cada establecimiento existen diferentes fichas. En la Tabla ficha tengo un enlace y un índice, y lo que no consigo hacer es que me busque las fichas que tiene un establecimiento. Es decir tengo un índice llamado establecimiento, una búsqueda por este índice y un formulario que me lanza la búsqueda, pero no consigo que me lo haga, y lo hago por el nombre de la ficha si lo hace pero no por el nombre del establecimiento.

La respuesta para las dos cuestiones es la misma: UTILIZANDO ÍNDICES COMPLEJOS

indices complejos

Indices complejos en el blog de Velneo

Antes vayamos con un poco de teoría

¿Qué son los índices complejos?

Resulta difícil dar una definición de lo que es un índice complejo… Daré mejor una de para qué sirve:

Un índice complejo nos permite devolver los registros de la tabla por la que estamos buscando que cumplan con un criterio de búsqueda (indicado en el propio índice) en una tabla relacionada

Vale, ahora es cuando podéis cerrar la boca…

Muchos os habréis quedado igual que estabais… o pensando que me he fumado algo.

Al grano… mediante un índice complejo podemos, por ejemplo, buscar todos los pedidos que en alguna de sus líneas tengan un artículo con el nombre xxx

¡ahhhh ahora sí!

¿Dónde podemos utilizar los índices complejos?

Para realizar búsquedas en índices complejos, podemos usar:

  • El comando de instrucción de procesos V7 “Cargar lista de índice complejo” que nos devolverá la lista de registros resueltos.
  • Los componentes del objeto búsqueda que ahora tienen un nuevo parámetro “Grupo índices” que permite seleccionar si deseamos utilizar un índice normal o un índice complejo, en función de la selección la siguiente propiedad nos solicitará un índice normal o un índice complejo según corresponda.

¿Qué necesitamos para utilizar los índices complejos?

  • Una tabla primaria que se corresponde con la tabla cuyas altas y bajas generarán las altas y bajas de la clave indexada.
  • Una tabla secundaria (tabla para búsquedas) es la tabla de la que se obtienen los resultados.
  • Una o múltiples tablas terciarias, son las que intervienen en la composición de la clave.

Y ahora… a practicar lo aprendido

Vamos a realizar un ejemplo sencillo de utilización de los índices complejos. Para ello vamos a pedir que, entre otros componentes de búsqueda, el sistema nos devuelva aquellos pedidos de compra en los que en sus líneas tengan un artículo cuyo nombre sea el del artículo seleccionado en un panel de búsquedas avanzadas empotrado en un formulario principal.

Indices_Complejos_Main

Creando el índice complejo

Nos vamos a nuestro proyecto de datos y creamos un nuevo objeto “Índice complejo” y en sus propiedades asignamos los siguientes parámetros:

Indices Complejos Propiedades

  • En la propiedad “Tabla asociada” le hemos indicado la tabla sobre la que queremos realizar la búsqueda por el índice complejo (en este caso “Líneas de pedidos”
  • En la propiedad “Tabla para búsquedas” le hemos indicado la tabla sobre la que estamos realizado la búsqueda (en este caso “Cabecera de pedidos”
  • En la propiedad “Resolución dir” le indicamos el campo por el que están relacionadas ambas tablas

A continuación tenemos que crear un subojeto “Parte de índice complejo” en el que tenemos que indicarle por que campo queremos realizar la búsqueda y el modo de realizarla (en este caso le indicamos que queremos buscar por el nombre del artículo de forma completa).

Parte del índices complejo

Ya sólo nos falta utilizar el índice complejo recién creado

Utilizando el índice complejo en una búsqueda

Vamos a usar el índice complejo en un componente de la búsqueda de pedidos.

Tengo una búsqueda con varios componentes condicionados en función de las variables que llegan a dicha búsqueda desde el formulario principal (recordad que para ejecutar la búsqueda en 3er plano y que sea óptima, necesitamos un proceso intermedio).

  • Primero creamos un subobjeto “Variable” del mismo tipo del campo sobre el que queremos buscar
  • A continuación creamos un subobjeto “Componente de búsqueda” para buscar por la referencia
  • Indices Complejos Componente de búsqueda

  • Como propiedad “Condición de activo” del componente de búsqueda, le indicamos que la variable local creada anteriormente tenga algún valor. En caso de que esté vacía no se lanzará este componente.
  • Lo importante es que en la propiedad “Grupo de índices” le indiquemos “Complejo“. A continuación seleccionaremos el índice complejo que queramos (de los creados asociados a la tabla de búsqueda)
  • En la propiedad “Límite inicial” tendremos que resolver el índice. Para ello le asignamos la variable local que hemos creado

IMPORTANTE: Antes de utilizar el índice complejo

Como me ha recordado mi buen amigo Pepeto (¡un saludo desde aquí!) antes de poder utilizar un índice complejo, es necesario regenerar el índice. Para ello disponemos de 2 opciones:

  • Desde el menú utilidades del componente “vDataClient” mediante la opción “Regenerar índices” del índice complejo seleccionado
  • Desde la función JavaScript regenComplexIndex( String szIdRefIdxComplejo, Boolean bProgressDialog ) de la clase VApp.

Ya sólo nos falta ejecutar la solución y probar la potencia de los índices complejos en Velneo V7

¿Tienes algún comentario que hacerme? Aprovecha y hazlo mas abajo.>

Francisco José Vila Martín
ayudavelneo@ayudavelneo.com

Francisco José Vila es autor del blog Ayudavelneo desde donde ayuda a desarrolladores que se están iniciando en Velneo a acortar su curva de aprendizaje para que obtengan beneficios y sean rentables desde el minuto 1. Además es programador certificado y formador en la plataforma de desarrollo de aplicaciones empresariales Velneo V7. Ampliar información

2 Comments
  • marianoyana
    Posted at 20:39h, 20 marzo Responder

    En la busqueda la tabla de origen tiene que ser la tabla para busquedas del indice complejo

  • marianoyana
    Posted at 20:41h, 20 marzo Responder

    Lo que no me he enterado de la última parte lo de regenerador de indice complejo

Post A Comment

Pin It on Pinterest