Tablas relacionadas en formularios

Tablas relacionadas en formularios

Se ha añadido la posibilidad de vincular dos tablas (SQLTables) en un formulario, de manera que los registros de una tabla dependan de la selección realizada en otra tabla.

En primer lugar, para poder utilizar las tablas relacionadas debe estar activa la carga asíncrona de tablas. En segundo lugar, la tabla principal, que determina los registros de la tabla relacionada, ha de tener activada la funcionalidad de selección múltiple con el fin de seleccionar los registros que intervendrán en la tabla relacionada. Finalmente, se ha de parametrizar la tabla relacionada de forma que tenga asignada el identificador de la tabla padre y el indicador de Relación esté en modo Tabla relacionada.

Por otro lado, el vínculo entre tablas se establece en la sentencia SQL de la tabla relacionada; de esta manera, para hacer referencia a campos de la tabla principal se utiliza la sintaxis #nombre_campo. Dado que dicho valor puede hacer referencia a múltiples registros, a la hora de ejecutarse la sentencia SQL el valor de la variable se transforma en una cadena de texto con los valores separados por comas (‘valor1’, ‘valor2’, … , ‘valorN’). Así, la transformación está preparada para utilizarla directamente dentro de la función IN de SQL, o bien procesar la cadena mediante XSQL-Script.

<select>
<columns>
        linid, codart, cantid, precio
    </columns>
    <from table='documentl' />
    <where>
        documentl.codart IN (#codart)
    </where>
</select>

Una vez  definidas las tablas, al seleccionar algún registro de la tabla principal en el formulario se ejecuta la sentencia de la tabla relacionada y se cargan los registros obtenidos.