Saltar para o conteúdo principal
Versão: 20 R7 BETA

GET FIELD RELATION

GET FIELD RELATION ( campoN ; um ; muitos {; *} )

ParâmetroTipoDescrição
campoNFieldIniciar campo da relação
umIntegerEstado das relações Muitos a Um
muitosIntegerEstado da relação Um a Muitos
*OperadorSe passado: um e muitos retorna o estado atual da relação (valores 2 ou 3 apenas) * se omitido (padrão): um e muitos podem retornar o valor 1 se a relação não foi modificada através de programação

Descrição

O comando GET FIELD RELATION permite conhecer o estado automático/manual da relação começando desde o campoN para o processo atual. Todas as relações podem ser consultadas, incluindo as relações automáticas na janela de Estrutura.

Passe em campoN, o nome do campo da tabela N desde onde começa a relação cujo estado queira conhecer. Se nenhuma relação se origina desde o campo campoN, os parâmetros um e muitos devolvem 0, se gera um erro e a variável sistema OK toma o valor 0 (ver a continuação).

  • Depois da execução do comando, a variável um contém um valor indicando se a relação Muitos a Um especificada está definida como automática:

0 = não há relação desde campoN. Se gera o erro de sintaxe No. 16 (“O campo não tem relação”) e a variável sistema OK toma o valor 0.
1 = o estado automático/manual da relação Muitos a Um especificado está definido pela opção Relação Muitos a Um automática nas propriedades da relação no ambiente Desenho (não foi modificado por programação).
2 = a relação Muitos a Um é manual para o processo.
3 = a relação Muitos a Um é automática para o processo.

Depois da execução do comando, o parâmetro muitos contém um valor indicando se a relação Um a Muitos especificada está definida como automática:
0 = não há relação desde campoN. Se gera o erro de sintaxe No. 16 (“O campo não tem relação”) e a variável sistema OK toma o valor 0.
1 = o estado automático/manual da relação Um a Muitos especificada está definido pela opção Relação Um a Muitos automática
2 = a relação Um a Muitos é manual para o processo.
3 = a relação Um a Muitos é automática para o processo.

Pode comparar os valores recebidos nos parâmetros um e muitos com as constantes do tema “Relações”:

ConstanteTipoValor
AutomaticInteiro longo3
ManualInteiro longo2
No relationInteiro longo0
Structure configurationInteiro longo1
  • O parâmetro opcional * permite “forçar” a leitura do estado atual da relação, inclusive se não foi modificado por programação. Em outras palavras, quando passa o parâmetro opcional *, só podem ser devolvidos os valores 2 ou 3 nos parâmetros um e muitos.

Exemplo

Dada a seguinte estrutura:

As propriedades da relação que une o campo [Empregados]Empresa com o campo[Empresas]Nome são as seguintes:

O código a seguir ilustra as diferentes possibilidades oferecidas pelos comandos GET FIELD RELATION, GET AUTOMATIC RELATIONS e SET FIELD RELATION, SET AUTOMATIC RELATIONS assim como seus efeitos:

 GET AUTOMATIC RELATIONS(um;muitos) //devolve False, False
 GET FIELD RELATION([Empregados]Empresa;um;muitos) //devolve 1,1
 GET FIELD RELATION([Empregados]Empresa;um;muitos;*) //devolve 3,2
 
 SET FIELD RELATION([Empregados]Empresa;2;0) //muda a relação Muitos a Um a manual
 
 GET FIELD RELATION([Empregados]Empresa;um;muitos) //devolve 2,1
 GET FIELD RELATION([Empregados]Empresa;um;muitos;*) //devolve 2, 2
 
 SET FIELD RELATION([Empregados]Empresa;1;0) //restabelece os parâmetros definidos no ambiente Desenho para a relação Muitos a Um
 
 GET FIELD RELATION([Empregados]Empresa;um;muitos) //devolve 1,1
 GET FIELD RELATION([Empregados]Empresa;um;muitos;*) //devolve 3,2
 
 SET AUTOMATIC RELATIONS(True;True) //muda todas as relações de todas as tabelas a automáticas
 
 GET AUTOMATIC RELATIONS(um;muitos) //devolve True, True
 GET FIELD RELATION([Empregados]Empresa;um;muitos) //devolve 1,1
 GET FIELD RELATION([Empregados]Empresa;um;muitos;*) //devolve 3,3

Ver também

GET AUTOMATIC RELATIONS
GET RELATION PROPERTIES
SET AUTOMATIC RELATIONS
SET FIELD RELATION