BLOG

Búsquedas en V7

Por [N4] vromero.velneo el | 14 Comments

Aquellos que hayan echado un ojo a las búsquedas en Velneo V7 habréis visto que en esencia son muy similares a Velneo 6.x, pero que existen pequeñas diferencias, e incluso en apariencia algunas carencias.

En Velneo V7 se ha hecho hincapié en dos factores: maximizar rendimiento / velocidad de las operaciones de búsqueda e independizar el concepto de “hacer una búsqueda” con el concepto de “como muestro” los resultados, es decir, crear un objeto “búsqueda” 100% independiente, reutilizable y optimizado.

Vamos entonces a analizar una a una las diferencias más importantes:

1.- En Velneo 6.x, se asociaba una rejilla a la búsqueda, en Velneo V7 no ¿porqué?

En Velneo V7, el objeto búsqueda únicamente hace eso, obtener los resultados de una búsqueda, pero sin atarlos inevitablemente a una rejilla ni a ningún otro control de interface que influya sobre “como se muestra”.

Esta independencia nos permite una mayor reutilización de la búsqueda, que podrá ser la misma para varias rejillas u otros controles que acepten como entrada una lista de fichas. Esto supone una importante ventaja de reutilización.

2.- En Velneo V7 no está la opción “Ordenar”

Ordenar los resultados de una búsqueda no deja de ser parte de la forma “en que se muestran” dichos resultados. Puesto que una búsqueda puede usarse para varias rejillas y en cada rejilla podemos querer ordenarlo de un modo diferente, puede no ser apropiado fijar una ordenación en concreto, si bien el problema realmente serio es que el rendimiento de la operación de búsqueda disminuye, pues ordenar unos miles de registros tiene un coste que debemos evitar en la medida de lo posible.

Por estos motivos creemos necesario separar “como ordenar”, de la búsqueda en si, y obligar a programar la ordenación de forma explicita cuando sea necesario. Pero os preguntareis,”si vale, tengo mayor abstracción, capacidad de reutilización, y mayor velocidad en la búsqueda, ¿pero como ordeno una búsqueda si me hace falta?”.

Para esto tenemos dos opciones:

– La búsqueda devuelve el resultado ordenado por sus índices, por lo que construir una búsqueda con los índices apropiados nos devolvería el resultado en el orden deseado en un tiempo mínimo.

– Insertar entre la salida de la búsqueda y la entrada de la rejilla, un sencillo proceso “ordenar lista” cuando sea necesario. De este modo tras realizarse la búsqueda, se ordena y se envía a la rejilla, y aunque en principio puede parecer más complejo, es muy sencillo de implementar y nos permite tener por separado “búsqueda”, “proceso ordenador” y “rejilla”, obteniendo así la mayor capacidad posible de reutilización de elementos.

3.- En Velneo V7 no está la opción formulario automático para búsquedas entre rangos, palabras o trozos.

Este formulario ha caído en desuso, y si deseamos introducir algún dato para la búsqueda, debe hacerse a través de un formulario disponible en Velneo V7, que cubre perfectamente todas las necesidades.

4.- Barra de herramientas

Como comentamos anteriormente, no tiene sentido introducir este elemento de interface propio de un control, en el objeto de búsqueda. La barra de herramientas que mostrará será la que tenga asociada la propia rejilla.

Velneo es el entorno ágil para el desarrollo
de aplicaciones empresariales

DESCARGAR VELNEO

14 Responses to "Búsquedas en V7"
  1. fjpnovo dice:

    Buenas tardes:

    Entendido. Ahora todos los componentes de la búsqueda están separados para hacerlos independientes, poder reutilizarlos mejor y adaptarlos a la filosofía v7 de que todos los objetos tienen entrada y salida.

    Un saludo,

    Fran.

  2. juan_figueroa dice:

    Me imagino que lo mismo pasará con los filtrados que con los ordenamientos.

    Me parece bien en principio, pero ¿dónde se ejecutará el ordenamiento y/o el filtrado? ¿En el servidor, como en V6.x (muy ventajoso e importante), o en el cliente?

    En general: la búsqueda se ejecutará en el servidor, supongo, ¿y los procesos de salida?

    Si como dice Fran y es el eslogan de la V7,” todos los objetos tienen entrada y salida”, ¿cuál será la entrada en las búsquedas? En principio, claro, la tabla y el índice dónde buscar, y ¿como vamos a resolver las partes de los índices si hace falta? ¿Con variables globales, externas, como en V6.x (visibles en todo tiempo y lugar y persona dentro de la aplicación) o mediante parámetros convertidos a variables locales en el objeto, como en los componentes HTML?

    Se puede pensar en que es un tema, el de los parámetros-variables locales v. variables globales de importancia relativa para los pragmáticos pero es como si un Banco con procedimientos informáticos remotos eficientísimos y segurísimos, pasara los datos, cantidades y nombres de personas, por el método GET. Yo esto lo propugno para todos los objetos que lo puedan soportar: procesos, tubos, búsquedas, formularios, menús, informes, etc.

    Para rizar el rizo, pediría, como ya se insinúo en el Foro tímidamente algunas veces, que los parámetros soportaran el paso de variables y arrays por valor y por referencia.

  3. comercial dice:

    Ok, y ademas ese proceso de lista que ordena, se lo podremos poner como una opción de la rejilla destino, para que el cliente pueda ordenar por distintos criterios programados.

    Nacho

  4. davidgu dice:

    Hola Juan

    A los filtrados todavía les hemos “salvado la vida” en la búsqueda todavía existe la opción de fórmula de filtrado.

    En general, todo lo que pueda ir al servidor ( Sin interacción con el usuario ) será lanzado en el servidor y el cliente recibirá los resultados para seguir trabajando con esos datos.

    Hay objetos de todo tipo…

    Objetos con entrada y salida ( Procesos, tubos de lista, etc. )

    Objetos con la misma tabla de entrada que salida ( lupa, etc. )

    Objetos solo con salida ( búsqueda, localizador, etc. )

    Objetos con entrada y salida visual ( formulario, rejilla, casillero, etc. )

    Objetos sin salida ni entrada ( constantes, impresora lógica, etc. )

    Respecto al tema de variables globales y locales, actualmente en V7 ya existen muchos objetos con variables locales, durante el diseño de Velneo V7 se ha tenido esto en consideración y ahora el uso de variables locales esta mucho más extendido dentro del los objetos. Incluso seguro que te llevarás una gran alegría ( espero ) cuando descubras la potencia de las variables locales junto a los eventos de objeto.

    Saludos!

  5. juan_figueroa dice:

    Me encantan este tipo de alegrias que prometes, David.

    Muchas gracias por tu respuesta y la atención que le has prestado personalmente.

    Un abrazo

    Del espíritu de “Mos” al espíritu de “A Granxa”: un hermoso camino.

  6. subcripciones dice:

    Hay una opción muy interesante en los menú contextuales de las rejillas, que no está totalmente desarrollada en mi opinión, y que conseguí aplicar a mis aplicaciones en mi época de Clipper (hace años ya de ésto jeje). 😉

    Se trata de la opción de “Guardar” y “Recuperar lista virtual”, y la funcionalidad a desarrollar sería la de que, en lugar de guardar el resultado de la rejilla, se guarde el conjunto de operaciones que el usuario haya ido aplicando a la rejilla, ordenar, filtrar, partir, … y demás operaciones aplicables.

    De ésta forma se añadiría una gran potencialidad a las rejillas y aumentaría su funcionalidad fuera de la propia programación.

    Viendo más allá, se podría gestionar esas “operaciones virtuales” guardas desde un menú, para que el usuario las pudiera seleccionar de una forma más cómoda.

    No se si he llegado a explicarme y si me entenderán quien me haya leído. 😕

    Saludos.

    Darío Plaza

  7. indexneo dice:

    La idea de Dario me parece muy buena.

    Y puestos a pedir, una opción Deshacer (Ctrl+Z) quizá seria pedir mucho. Para anular las particiones, filtrados y ordenaciones en orden inverso.

    un saludo.

  8. gpv dice:

    Es muy de agradecer la no vinculación a objetos por narices.

  9. overall dice:

    Pues si, la opción que aporta Dario es muy interesante y ya hay unos cuantos programas de la competencia que aportan esta solución. Muy útil para el usuario final, ya que nosotros no intervenimos para nada.

    Saludos

    P.D. No se si se ha hablado del módulo de exportación ASCII. Que estará, puesto que es una forma de enlazar con el mundo exterior muy necesaria.

    Saludos

Deja un comentario

Esta web utiliza cookies. Si continúa navegando acepta dichas cookies y nuestra política de cookies. Gracias. ACEPTAR

Aviso de cookies