Tablas asíncronas en formularios

Tablas asíncronas en formularios

Se ha introducido una interesante innovación en la emisión de tablas en los formularios de Studio (SQLTables);  dicha modificación hace referencia a la generación asíncrona de las tablas. Esto es, una tabla de formulario se genera a partir de la ejecución de una consulta a la base de datos, ya sea mediante una sentencia SQL o la ejecución de un proceso; hasta la fecha, dicha ejecución se realizaba únicamente en la carga del formulario, a partir de los datos iniciales de este.

Gracias a la generación asíncrona, las tablas podrán actualizarse posteriormente a la carga del formulario y, por tanto, tener en cuenta parámetros modificados en el formulario sin tener que recargar la página ni guardar los cambios realizados. Uno de los usos para los que se ha implementado la carga asíncrona es la posibilidad de incluir tablas relacionadas en un formulario.

Por lo tanto, de la misma manera que se viene haciendo hasta ahora, el sistema carga la tabla en un primer momento al cargar el formulario*. Por otro lado, existen dos métodos para recargar la tabla a partir de los valores actuales del formulario: En primer lugar, mediante el botón de recargar , situado en la botonera de la parte superior derecha del la caja, en segundo lugar, mediante la función Javascript sqltableRefresh(Código)**.

* A pesar que la carga de la tabla se realiza al inicio de la página, esta se realiza de forma asíncrona, por lo tanto, si la sentencia de la tabla tarda en ejecutarse no para la carga del resto de formulario.

** La función sqltableRefresh es una función de usuario que se puede llamar desde cualquier formulario, por ejemplo desde los eventos de campos. Esta función recibe el código mnemotécnico de la tabla, el cual se define en la parametrización de la tabla y la identifica de forma unívoca dentro de un formulario.

Activación de la carga asíncrona de tablas

A día de hoy, es posible seleccionar si se desea cargar las tablas de forma asíncrona o bien mantener la carga tradicional. Dicha opción se define a nivel de servidor JAS, a partir de un parámetro de configuración en el archivo webstudio-config.xml:

deister.webstudio.core.jsql.jrep.data.wic_jrep_box_sqltable.jqueryRender

Si dicho parámetro adopta el valor true el sistema carga las tablas de forma asíncrona, por el contrario, si tiene valor false, la carga se hará de la forma tradicional. Cabe destacar que la carga de tablas de forma tradicional tiene ciertas limitaciones:

  • No es compatible con el uso de tablas relacionadas.
  • No es compatible con la multiselección.