Vincular diferentes tablas con relaciones de tabla

Completado

TableRelation es una propiedad de tabla que se utiliza para establecer una relación entre dos tablas, como entre la tabla Cliente y la tabla Países. Por ejemplo, un cliente se encuentra en un determinado país. Por lo tanto, existe una relación entre las tablas Cliente y País.

La propiedad TableRelation le permite establecer búsquedas en otras tablas. Esta propiedad muestra un menú desplegable en las páginas, donde un usuario puede seleccionar un valor de la tabla vinculada.

Captura de pantalla del menú desplegable de la propiedad TableRelation.

Relación de tabla normal

Una relación de tabla normal es una relación simple entre dos tablas. En este tipo de relación, puede especificar la tabla que desea vincular en la propiedad TableRelation. Si especifica la tabla, se vincula automáticamente a la clave principal de esa tabla.

Ejemplo de captura de pantalla de una relación de tabla regular.

Relación de tabla filtrada

Una relación de tabla normal muestra todos los registros de la tabla vinculada. Con una relación de tabla filtrada, puede limitar los registros que se muestran mediante el uso de uno o varios filtros en los registros de la tabla. Como resultado, una relación de tabla filtrada solo muestra un subconjunto de los registros.

En el siguiente ejemplo, el código País/región se filtra para mostrar únicamente los países o las regiones en los que el campo Código de país/región de la UE no está en blanco.

Captura de pantalla de la relación filtrada de la tabla de código de país/región

Relación de tabla condicional

Una relación de tabla condicional es una relación de tabla dinámica porque no está fijada a una tabla. El vínculo depende de una condición. Por lo tanto, según la evaluación de una condición, podría relacionarse con una u otra tabla.

Se utiliza una relación de tabla condicional en las líneas de venta de un pedido de venta. En función del campo Tipo, el campo N.º estará vinculado a otras tablas.

Captura de pantalla de una línea de venta vinculada a una tabla de artículos.

Captura de pantalla de una línea de venta vinculada a una tabla de recursos.

El siguiente ejemplo de código muestra un fragmento de la tabla Línea de ventas (tabla 37), donde el campo N.º está vinculado a otras tablas, dependiendo del valor del campo Tipo. Esta relación de tabla condicional también está utilizando una serie de relaciones de tabla filtradas.

Ejemplo de captura de pantalla de un fragmento de código de una relación de tabla condicional.

Utilizar la sintaxis de acceso de opciones en fórmulas

Al configurar SourceTableViews, TableRelations, etc., que se relacionan con otras tablas por ID de tabla (o con menos frecuencia, especifique los ID de codeunit que se va a ejecutar), los desarrolladores tenían que especificar el ID entero del objeto de destino. No era fácil de usar ni de leer y podía ser propenso a errores.

El lenguaje AL, en las propiedades de fórmula, ahora admite el uso de la sintaxis de acceso de opciones (nombres). Con esto se elimina la necesidad de valores de ID enteros codificados de forma rígida y mejora la legibilidad y la capacidad de mantenimiento del código.

Por tanto, en lugar de:

al-languageCopy
SourceTableView = where("Source Type" = const(18));

Será posible utilizar el nombre de la opción:

al-languageCopy
SourceTableView = where("Source Type" = const(Database::Customer));