Exportador dinámico 2.0

Hace algunos años apareció un magnífico plugin para nuestras aplicaciones Velneo, se trataba del exportador dinámico, un plugin realizado por TheSeedSC.

El “Exportador dinámico” permitía crear plantillas personalizadas para exportar los registros de una lista (una vista de datos normalmente) seleccionando entre los campos de la tabla y sus maestros.

Exportador dinámico

Además, disponía de otras funcionalidades muy interesantes:

  • guardar y recuperar plantillas
  • ocultar campos (lista negra)
  • distintos formatos (CSV, HTML, JSON)
  • poder exportar desde cualquier vista de datos con un manejador de evento y dos líneas de JS

Sin embargo, presentaba algunos inconvenientes:

  • La estructura completa de la BBDD se guardaba en tablas en disco y se traspasaba parte de ella a tablas en memoria cuando se quería crear una plantilla, esto hacía que si se cambiaba la estructura de la BBDD (añadir, modificar o eliminar campos y/o tablas) había que borrar las tablas y generar la estructura de nuevo.
  • Las listas negras también estaban guardadas en tablas, enlazadas con la estructura, lo que suponía que se perdían si había que regenerar la estructura.
  • El traspaso de información de las tablas de disco a tablas en memoria se ralentizaba en caso de tablas con muchos campos y enlaces maestros.

Por todo ello un día empezamos a pensar en cómo intentar solucionar algunos de los problemas que presentaba aprovechando novedades del API JS y el nuevo control TreeView, entonces decidimos no guardar la estructura de la BBDD, sino leerla cuando fuera necesario del proyecto Velneo (con VProjectInfo y VTableInfo), además optimizamos su carga, sólo se leen las tablas enlazadas cuando el usuario las abre.

Al no guardar la estructura en tablas no podíamos crear vistas de datos “rejillas” o “árboles” con objetos Velneo, así que usamos el control TreeView para representar tanto los campos disponibles como.

exportador dinámico

El exportador dinámico + “Life is soft”

Finalmente optamos por un enfoque algo más Life Is Soft a la hora de integrar el exportador con nuestras aplicaciones, en lugar de llamarlo con JS desde vistas de datos, preparamos tres procesos  para que pudieran ejecutarse desde cualquier origen lista (“Preparar plantilla”, “Generar datos” y “Preparar plantilla+Generar datos”), además, al estar divididos es posible utilizarlos de forma más flexible, si sólo necesitas que el usuario prepare una plantilla se ejecuta el primero (para guardarla como configuración), si ya tienes la plantilla guardada puedes recuperarla y ejecutar directamente el proceso de “Generar datos”.

También nos permite personalizar la ejecución del exportador:

  • Preparar plantilla
  • Realizar un proceso largo/costoso de búsqueda o generación de registros
  • Pasar el resultado al proceso de generar datos

Para que podáis probarlo vosotros mismos os adjuntamos un pequeño .vin con el código un par de tablas de ejemplos.

Algunas de las mejoras y funcionalidades interesantes para añadir pueden ser:

  • Listas negras de campos
  • Guardar y recuperar plantillas
  • Añadir opciones de formateo a los campos (formatos de tiempo/fecha/hora, eliminar saltos de línea en campos alfabéticos…)
  • Implementar otros formatos de salida (HTML, XML, JSON…)

Si queréis integrarlo con vuestras aplicaciones sólo tenéis que copiar los objetos (y ficheros de script) y modificar el fichero “exp_cfg.js” con el alias de vuestro proyecto.

¿A qué esperas para descargarte el exportador dinámico del Profesor vBacterio?

Pruébalo y déjame un comentario mas abajo

La entrada Exportador dinámico 2.0 aparece primero en AyudaVelneo.

This entry was posted in Uncategorized and tagged , , , , , , . Bookmark the permalink.