Cómo guardar parámetros seleccionados por el usuario

Cómo guardar parámetros seleccionados por el usuario

En la mayoría de los documentos analíticos de Atlas SBI es posible filtrar la información contenida a través de una selección realizada en un panel de selectores situados en alguna zona del documento. Por lo general, ese panel de selectores muestra, inicialmente, valores genéricos o por defecto cada vez que se abre. A partir de ahí, el usuario puede escoger los valores de los selectores que considere oportunos y que modificarán la información mostrada por el documento analítico.

Cabe la posibilidad de que el usuario en un documento analítico seleccione siempre las mismas opciones que le proporcionan los selectores, de modo que acabe realizando una tarea repetitiva y automática. Ante ese posible escenario, hemos creído oportuno mostrar una solución de fácil implementación cuyos detalles se muestran a continuación.

Mediante la siguiente solución, un usuario podrá guardar los valores que desee de un panel de selectores. Así, cuando vuelva a cargar el documento, los selectores mostrarán por defecto las selecciones guardadas, y la información aparecerá ya filtrada por esa selección. Todo ello, manteniendo la capacidad de escoger cualquier otra opción disponible de los selectores.

Visión general

La solución consiste en guardar los valores que el usuario quiera que aparezcan como filtros del documento analítico consultado en una tabla de nuestra base de datos. Para llevarlo a cabo, serán necesarios:

  • dos nuevos controles en el documento: un button y un simpledata, 
  • una nueva tabla en la base de datos, 
  • un procedimiento almacenado y 
  • la modificación de los selectores originales.

El button lo podremos colocar en la zona de los selectores para que el usuario tenga la posibilidad de guardar su selección si lo estima oportuno. Al ejecutarlo, le pasará los valores necesarios al SimpleData para que llame un procedimiento almacenado en nuestra base de datos que poblará la nueva tabla.

Dicha tabla deberá contener los valores necesarios para devolverlos al selector original; a saber, nombres de proyecto, documento, rol, usuario y control. De manera que la próxima vez que se abra el documento, los selectores consultarán dicha tabla para mostrar, si es que existe tal registro, la selección guardada por el usuario.

Solución completa

Se puede descargar la solución completa desde aquí, los archivos adjuntos contienen:

  1. BD-Parametros – Script de SQLServer para generar una Base de datos de ejemplo que incluye la tabla donde se almacenarán los datos a guardar de los selectores y el procedimiento almacenado para actualizarla.
  2. ProcedimientoAlmacenado – Selectores – Procedimiento almacenado de SQLServer por separado.
  3. GuardarParametros.gz – Archivo backup de Atlas SBI donde se incluyen:
    1. PasoParametros-01 – Documento de ejemplo con dos selectores para comprobar la modificación de los selectores
    2. PasoParametros-02 – Documento de ejemplo con tres selectores para comprobar la modificación de los selectores

Si se desea comprobar directamente el funcionamiento, será necesario realizar lo siguiente:

  • Ejecutar el script del archivo BD-Parametros para generar la BD.
  • Importar en AtlasSBI cualquiera de los documentos contenidos en el archivo GuardarParametros.gz y asignarlos a un rol. 

Las consultas contenidas en los dos documentos trabajan sobre la base de datos Northwind. Si no se dispone de ella, habrá que modificarlas.

Procedimiento detallado
Aún así, los siguientes pasos explican la manera de implementar esta solución. Están desarrollados en SQL Server, pero son perfectamente extrapolables a cualquier otro sistema:

  • Paso 1: Crear una tabla en la BD para almacenar los datos que el usuario desee guardar por defecto. En esa tabla se guardarán los nombres del ProyectoDocumentoRolUsuarioControl y el Valor seleccionados. (El archivo adjunto «BD-Parametros» contiene un script para la generación de una BD a modo de ejemplo de uso)
  • Paso 2: Crear un nuevo control de tipo Button en el documento donde se encuentren los selectores que queramos capturar. Ese botón recibirá por parámetros los valores de los selectores. (Ejemplos disponibles en los documentos «Guardar parámetros – Doc 1 y 2» dentro del archivo adjunto de backup de Atlas SBI «GuardarParametros.gz» 
  • Paso 3: Modificar, en el documento donde se haya añadido el control Button, cada uno de los selectores para que muestren el valor correspondiente guardado en la tabla del paso 1, o bien la lista de selección normal si aún no hubiera selección guardada. Se pueden comprobar ejemplos en los selectores: Vendedor, Producto y País, de los documentos contenidos en el archivo «GuardarParametros.gz».
  • Paso 4: Crear un Procedimiento almacenado en la BD que actualizará la tabla de parámetros cuando sea activado el control de tipo Button del paso 2. Este procedimiento se encargará de recoger los valores de cada control a guardar, comparándolos con los existentes en la tabla del paso 1 y añadiéndolos en caso de no existir previos o bien haber sido modificados por la nueva selección. (Archivo adjunto: «ProcedimientoAlmacenado – Selectores»)
  • Paso 5: Crear un control Simple Data y añadirlo al documento (No es necesario que este control sea visible, pero sí es indispensable añadirlo). Se encargará de recoger los valores capturados por el botón y ejecutar la llamada al Procedimiento almacenado anterior con los valores a guardar en la tabla del paso 1.​​ 

Una vez implementada la solución, al abrir el documento, en lugar de aparecer la selección por defecto:

Se realizará una consulta a la tabla para comprobar si existen valores guardados:

Y, en caso de haberlos, cargará esos valores directamente en los selectores.

No es necesario seleccionar un valor para cada selector. Es posible incluso guardar el valor por defecto, como en el caso del ejemplo, el valor «-Todos-» y combinarlo con cualquier otro valor de los selectores.

Sobre el autor

Xavier Plaza:

0 Comments

Quieres compartir tus impresiones?

Tu dirección de correo no será publicada. Los campos obligatorios se marcan con *

Deja una respuesta