Prueba Velneo Gratis

Te ofrecemos todo el poder de Velneo durante 1 mes para desarrollar la aplicación que tu empresa necesita.

Saber más
Thank you! Check your email for confirmation.

Edición de datos: Data Catcher Edit

La galería de controles de Velneo V7 ha recibido un nuevo miembro denominado data catcher edit.

datacatcher01

Como se puede apreciar en la imagen el control se puede incluir en un formulario, aunque también podemos declarar columnas de rejilla que editen su contenido con este nuevo control.Un ejemplo para comprender su funcionalidadLa mejor forma de explicar este nuevo control es viendo un ejemplo de uso. Supongamos que tenemos una aplicación de gestión donde contemplamos una tabla de artículos (ARTICULOS), una tabla de idiomas (IDIOMAS) y una tabla plural de ambas donde declaramos el nombre del artículo en sus diferentes idiomas (ARTIDIOS), veamos el esquema de esta estructura de tablas de la aplicación:

datacatcher02

En el esquema podemos observar como la tabla de líneas de pedidos apunta tanto a la de artículos como a la de idiomas de los artículos. El problema que se plantea en este tipo de estructuras es ¿Cómo puedo seleccionar el artículo por el nombre, pero seleccionando por una lista de artículos que estén en el nombre del idioma del cliente o el idioma configurado por el usuario en su aplicación?Sin este control, la localización y selección se vuelve compleja, hay que escribir bastante código para poder resolverlo, además de que también resulta complicado gestionar los diferentes controles a crear en el formulario para la selección del dato en el idioma correspondiente y mostrarlo en el idioma que deseemos. Si queremos hacerlo en una rejilla, aún resulta más complicado.La potencia del control data catcher editSupongamos que pudiésemos tener un control que nos permitiese mostrar la lista de nombres de artículos subindexada para mostrar “sólo” el idioma que nosotros deseemos, pero que al seleccionar el registro de la tabla ARTIDIOS (idiomas de artículos) el control fuese capaz de actualizar directamente el artículo de la línea con el valor correspondiente al artículo seleccionado en el idioma.Pues esto es precisamente lo que nos permite hacer el control data catcher edit. Podemos, indicarle al control por qué lista de registros de qué tabla nos queremos mover para realizar la selección y también en qué campo queremos dejar el resultado. En concreto, en nuestro ejemplo podremos localizar los artículos por la lista de nombres de artículos por idioma, pero al seleccionarlo realmente estaremos grabando en el campo artículo de la línea el código correspondiente al artículo seleccionado.¿Cómo se define?Vamos a repasar lo sencillo que es configurar las propiedades de este control utilizando como referencia la siguiente imagen:

datacatcher03

Sólo tenemos que cumplimentar estas 4 propiedades con los siguientes datos para nuestro ejemplo.

  • Tabla apuntada: Será la tabla de artículo-idioma (ARTIDIOS) donde tenemos la lista de registros a mostrar para la selección.
  • Campo visible: Será el campo que se visualice en el control de edición, en este caso el nombre del artículo en el idioma por el que estamos seleccionando.
  • Asignar a contenido: Indicamos qué campo de la tabla de selección se asignará al campo especificado en la propiedad “contenido” del control, en nuestro ejemplo el campo #ARTICULOS de la tabla ARTIDIOS.
  • Contenido inicial: Será el campo ARTIDIO, que es un campo puntero indirecto virtual declarado en la tabla de líneas que apunta a la tabla ARTIDIOS, resolviendo por el artículo de la línea y el idioma del cliente en este caso.

En el control de formulario el campo contenido de nuestro ejemplo tiene el valor #ARTICULOS.Si declaramos en una columna editable de una rejilla que usaremos el tipo de editor data catcher edit, veremos que además de las propiedades comentadas para el control de formulario, tenemos un última propiedad “campo modificable” que es necesaria porque, a diferencia de lo que ocurre en el control de formulario, en la rejilla el dato que se ve no es el mismo que el que se edita, y la propiedad “contenido de la columna” de rejilla es nuestro ejemplo tiene el valor #ARTIDIO.NAME.

datacatcher04
  • Campo modificable: Indicamos el campo que se modificará con el valor de la propiedad asignar a contenido.

Otro ejemploPodríamos con este control mostrar la lista de albaranes pendientes de facturar y al seleccionar el albarán atrapar el código del cliente del albarán que es lo que realmente queremos seleccionar.Pero la potencia de este control no termina en estos ejemplos, sino que además su versatilidad nos permite que en un formulario podamos alimentar a este control con una lista de registros que obtenemos en un proceso o script JavaScript y que puede ser el resultado de cualquier búsqueda, cruces de listas, filtrados, etc. Es decir, no sólo podemos utilizar la subindexación sino que además podemos enviarle al control cualquier lista de registros que deseemos, incluso cambiarla dinámicamente en cualquier momento, en tiempo de ejecución.¿Cómo se comporta a nivel de interfaz?Su comportamiento es similar al de un control de edición de tabla maestra, nos permite autocompletar el texto, subindexar la lista de registros, mostrar una vista de datos con la lista de registros seleccionables, podemos poner un botón menú para incluir opciones de funcionalidad adicional como localizar, añadir, editar, etc.En definitiva se trata de un control realmente completo funcionalmente pero que además nos resuelve, de forma elegante y sencilla, una problemática realmente compleja de programar.A continuación vemos un ejemplo de rejilla editable con columnas que usan este control y el formulario en el que visualmente no somos capaces de distinguir que el primer control es un control de edición de maestro, el segundo es un data catcher edit que nos permite seleccionar el artículo por los nombres de los artículos en el idioma del cliente y el tercero es similar al segundo, pero seleccionando por el idioma configurado en el combobox de la toolbar principal de la aplicación.

datacatcher05

Para completar la información de este control a continuación tienes enlaces al manual de ayuda de Velneo V7 donde te explica una a una las propiedades para que sepas crear controles data catcher edit en tus aplicaciones, tanto en formularios como en rejillas.

Regístrate ahora y nuestro equipo se pondrá en contacto muy pronto