| 4D v13.4RELATE ONE | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v13.4
 RELATE ONE 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| RELATE ONE ( tabelasN | campoN {; discriminante } ) | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| tabelasN | campoN | Tabela, Campo |   | Tabela para a qual estabelecer todas as relações automáticas, ou Campo com as relações manuais para tabela Um | |||||
| discriminante | Campo |   | Campo discriminante da tabela 1 | |||||
RELATE ONE aceita duas sintaxes.
A primeira sintaxe do comando, RELATE ONE(tabelaN), ativa todas as relações Muitos a Um automáticas para a tabela tabelaN no processo atual. Isso significa que para cada campo da tabela tabelaN que tenha uma relação Muitos a Um automática, o comando selecionará o registro relacionado em cada tabela relacionada. Isso muda o registro atual na(s) tabela(s) relacionadas para o processo.
A segunda sintaxe, RELATE ONE(campoN{;discriminante}), busca o registro relacionado com campoN. Não é necessário que a relação seja automática. Se existir, RELATE ONE carrega em memória o registro relacionado, dolo o registro e a seleção atual da tabela.
O parâmetro opcional discriminante só pode ser especificado se campoN é de tipo Texto ou Alfa. O campo discriminante deve ser um campo da tabela relacionada e pode ser de tipo Alfa, Texto, Numérico, Data, Hora, ou Booleano; Não pode ser tipo Imagem ou BLOB.
Se campoN é especificado e se mais de um registro é encontrado na tabela relacionada, RELATE ONE mostra uma lista de registros que correspondem ao valor de campoN, permitindo ao usuário selecionar um registro. Nessa lista, a coluna da esquerda mostra os valores dos campos relacionados, e a coluna da direita os valores de discriminante.
Seria possível encontrar mais de um registro se campoN termina com o caractere arroba (@). Se só houver uma coincidência, não aparece a lista. Especificar um campo em discriminante é o mesmo que definir um campo discriminante na caixa de diálogo de definição das propriedades de uma relação no ambiente Desenho. Para maior informação sobre a definição de um campo discriminante, consulte o Manual de Desenho de 4D.
No  exemplo a seguir, a tabela [Faturas] está relacionada a tabela [Clientes] por duas relações manuais. Uma relação parte do campo [Faturas]Cobrar de ao campo [Clientes]ID, e a outra relação vai de [Faturas]Enviar a [Clientes]ID.
Como as duas relações apontam a mesma tabela, [Clientes], não é possível obter a informação de faturação e envio ao mesmo tempo. Portanto, a informação deve ser mostrada utilizando variáveis. Se o formulário contiver os campos [Clientes], só se mostrarão os valores resultantes da segunda relação.
Os seguintes métodos são os métodos de objeto dos campos [Faturas]Cobrar de e [Faturas]Enviar a. Estes métodos são executados quando são introduzidos campos.
Este é o método de objeto para o campo [Faturas]Cobrar de:
 RELATE ONE([Faturas]Cobrar de
 vDireccion1:=[Clientes]Direção
 vCiudad1:=[Clientes]Cidade
 vEstado1:=[Clientes]Estado
 vCodigo1:=[Clientes]CodigoPostalEste é o método de objeto para o campo [Faturas]Enviar a:
 RELATE ONE([Faturas]Enviar a)
 vDireccion2:=[Clientes]Direção
 vCiudad2:=[Clientes]Cidade
 vEstado2:=[Clientes]Estado
 vCodigo2:=[Clientes]CodigoPostalSe o comando for executado corretamente e se os registros relacionados forem carregados, a variável sistema OK toma o valor 1. Se o usuário clicar em Cancelar na caixa de diálogo de selecção do registro (que aparece quando o registro relacionado tiver sido modificado), a variável OK toma o valor 0.
	Produto: 4D
	Tema: Relações
	Número 
        42
        
        
        
	
        
        

 
        
	Modificado: 4D v11 SQL