Localizadores sin límites

Artículos de interés para la comunidad de Velneo 6x
Avatar de Usuario
velneo
vAdmin
vAdmin
Mensajes: 245
Registrado: 09 Sep 2005, 08:55

Localizadores sin límites

Mensaje por velneo » 12 Abr 2012, 14:02

El localizador es un objeto visual de una potencia enorme. Permite localizar un registro concreto desde un menú, un formulario de histórico, una rejilla editable, etc. sin necesidad de que el usuario tenga que memorizar el código del registro buscado. Además, siguiendo la filosofía de programación con Velneo, una de sus ventajas es la simplicidad con la que se programa: para realizar un localizador básico basta escoger la tabla origen y la rejilla en la que se visualizarán los registros.

En este artículo trataremos de daros una solución a los problemas que tradicionalmente por su naturaleza, nos encontramos a la hora de trabajar con localizadores. En primer lugar vamos a identificar estas circunstancias:

- Índices de localizador por proceso: El comando de que disponemos para utilizar un localizador desde un proceso es "Seleccionar ficha mediante localizador" pero en el localizador que nos devuelve este comando nunca dispondremos de la lista de índices, para localizar por código, trozos, etc. Este es el funcionamiento lógico y correcto ya que no tiene ningún sentido tener una lista preexistente, sobre la que queremos trabajar, y que el usuario pueda a continuación seleccionar un índice en el que se incluyen todos los registros. Es decir, un localizador llamado desde proceso, permite seleccionar un registro de entre los que componen la lista desde la que se utilizo el comando "Seleccionar ficha mediante localizador".

- Resolución de partes de índices: Esta es una utilidad que aporta muchísima potencia a los localizadores. Consiste en poder resolver partes (campos) del índice. Por ejemplo: En un localizador podemos añadir un índice de la tabla facturas compuesto por los campos Código y Empresa resolviendo solo la parte de la empresa y así el usuario solo podrá localizar facturas de la empresa resuelta. Esta resolución parcial no es posible realizarla en un índice por trozos o palabras ya que en un índice por trozos se almacenan las distintas ternas de letras, sin repeticiones, existentes en uno o varios campos, que lo componen. Por tanto es imposible pretender resolver parte del índice con un dato completo ya que en este índice ya no se encuentra ese dato completo. Por ejemplo el código de la empresa, completo, ordenado y alineado.

En el link del final del artículo puedes descargar un mapa de ejemplo en el que se ha desarrollado un localizador manual. En este ejemplo se puede localizar un documento por trozos del nombre del cliente condicionando los documentos a localizar, a la empresa en curso.

El desarrollo consiste en un proceso que inicialmente muestra al usuario un formulario de aspecto similar al del localizador, al final del proceso se retorna la ficha localizada.

En el formulario hay un control edit de una variable que se utiliza para introducir la cadena de búsqueda, a continuación está el botón que ejecuta la búsqueda y muestra los registros encontrados en la rejilla inferior. Ésta es la única diferencia de funcionalidad con respecto a los localizadores nativos de la plataforma, ya que para que se actualice la lista de registros hay que tabular o pulsar el botón de búsqueda. Por último, la selección de una ficha funciona exactamente igual, se puede hacer doble clic en la rejilla sobre el registro deseado o pulsar el botón “Selec” tras seleccionar la ficha. Con el botón “Salir” se cancela la selección de ficha.

Si queremos añadir más índices al localizador manual, basta con añadir una tabla estática en la que el usuario pueda seleccionar el índice deseado y tener esta circunstancia en cuenta a la hora de ejecutar la búsqueda.

Responder