versión 3
RELATE ONE (tablasN | CampoN{; discriminante})
Parámetro | Tipo | Descripción | |
tablasN | CampoN | Tabla | Campo | Tabla para la cual definir todas las relaciones | |
automáticas o Campo con la relación manual con la | |||
tabla Uno | |||
discriminante | Campo | Campo discriminante de la tabla 1 |
Descripción
RELATE ONE acepta dos sintaxis.
La primera sintaxis del comando, RELATE ONE(tablaN), activa todas las relaciones Muchos a Uno automáticas para la tabla tablaN en el proceso actual. Esto significa que para cada campo de la tabla tablaN que tenga una relación Muchos a Uno automática, el comando seleccionará el registro relacionado en cada tabla relacionada. Esto cambia el registro actual en la(s) tabla(s) relacionadas para el proceso.
La segunda sintaxis, RELATE ONE(campoN{;discriminante}), busca el registro relacionado con campoN. No es necesario que la relación sea automática. Si existe, RELATE ONE carga en memoria el registro relacionado, volviéndolo el registro y la selección actual de la tabla.
El parámetro opcional discriminante sólo puede ser especificado si campoN es de tipo Alfa. El campo discriminante debe ser un campo de la tabla relacionada y puede ser de tipo Alfa, Numérico, Fecha, Hora, o Booleano; No puede ser tipo Texto, Imagen, BLOB, o subtabla.
Si campoN se especifica y si más de un registro se encuentra en la tabla relacionada, RELATE ONE muestra una lista de registros que corresponden al valor de campoN, permitiendo al usuario seleccionar un registro. En esta lista, la columna de la izquierda muestra los valores de los campos relacionados, y la columna de la derecha los valores de discriminante.
Se podría encontrar más de un registro si campoN termina con el carácter arroba (@). Si sólo hay una coincidencia, no aparece la lista. Especificar un campo en discriminante es lo mismo que definir un campo discriminante en la caja de diálogo de definición de las propiedades de una relación en el entorno Diseño. Para mayor información sobre la definición de un campo discriminante, consulte el Manual de Diseño de 4D.
RELATE ONE funciona con las relaciones a las subtablas, pero para que la relación funcione correctamente debe haber una relación con la tabla padre y el campo relacionado de la subtabla. Cuando utilice una relación con un subregistro, primero debe utilizar RELATE ONE para cargar el registro relacionado en memoria y luego utilizar por segunda vez RELATE ONE para la subtabla.
Ejemplo
En el siguiente ejemplo, la tabla [Facturas] está relacionada a la tabla [Clientes] por dos relaciones manuales. Una relación parte del campo [Facturas]A nombre de al campo [Clientes]ID, y la otra relación va de [Facturas]Enviar a a [Clientes]ID.
Como las dos relaciones apuntan a la misma tabla, [Clientes], no es posible obtener la información de facturación y envío al mismo tiempo. Por lo tanto, la información debe ser mostrada utilizando variables. Si el formulario contiene los campos [Clientes], sólo se mostrarán los valores resultantes de la segunda relación.
Los siguientes métodos son los métodos de objeto de los campos [Facturas]Facturar a y [Facturas]Enviar a. Estos métodos se ejecutan cuando se introducen los campos.
Este es el método de objeto para el campo [Facturas]Facturar a:
RELATE ONE ([Facturas]Facturar a) vDireccion1 := [Clientes]Direccion vCiudad1 := [Clientes]Ciudad vEstado1 := [Clientes]Estado vCodigo1 := [Clientes]CodigoPostal
Este es el método de objeto para el campo [Facturas]Enviar a:
RELATE ONE ([Facturas]Enviar a) vDireccion2 := [Clientes]Direccion vCiudad2 := [Clientes]Ciudad vEstado2 := [Clientes]Estado vCodigo2 := [Clientes]CodigoPostal
Ver también