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

GOTO SELECTED RECORD

GOTO SELECTED RECORD ( {tabela ;} posicao )

ParâmetroTipoDescrição
tabelaTableTabela na qual ir ao registro selecionado ou Tabela por padrão, se omitida
posicaoIntegerPosição do registro na seleção

Descrição

GOTO SELECTED RECORD move o registro especificado na seleção atual de tabela o registro atual. A seleção atual de tabela não muda. O parâmetro registro não é o mesmo do número retornado por Record number; Este parâmetro representa a posição do registro na seleção atual. A posição do registro depende da maneira na qual a seleção tenha sido criada e ordenada.

GOTO SELECTED RECORD não faz nada se:

  • não há registros na seleção atual
  • registro não está na seleção atual,
  • registro já é o registro atual. Se passa 0 em registro, não haverá registro atual em tabela. Este mecanismo permite desmarcar todos os registros em uma lista, especialmente no caso dos subformulários incluídos, quando o modo de seleção é “único”.

Exemplo

O seguinte exemplo carrega dados do campo [Pessoas]Sobrenome no array atNomes. Um array de inteiros longos, chamado NumReg, se preenche com os números que representarão aos registros selecionados. Depois os dois arrays são ordenados:

 Tab/] // Criar aqui a seleção da tabela [Pessoas]
   // ...
   // Obter os nomes
 SELECTION TO ARRAY([Pessoas]Sobrenome;atNomes)
   // Criar um array para os números de registros selecionados
 $vlNbRegistros:=Size of array(atNomes)
  ARRAY LONGINT(NumReg;$vlNbRegistros)For($vlRegistro ;1;$vlNbRegistros)NumReg{$vlRegistro }:=$vlRegistro
  End for
  // Ordenar os dois arrays em ordem alfabética
  SORT ARRAY(atNomes;NumReg;>)

Se o array atNomes for mostrado em uma área de rolagem, o usuário faz clique em um dos elementos. Como a ordenação dos dois arrays está sincronizada, todo elemento de numReg proporciona o número do registro selecionado para o registro cujo nome for guardado no elemento correspondente em atNomes.

O seguinte método de objeto para atNomes seleciona o registro correto na seleção de [Pessoas], de acordo ao nome elegido na área de rolagem:

 Case of
        :(Form event code=On Clicked)
        If(atNomes#0)
        GOTO SELECTED RECORD(NumReg{atNomes})
        End if
        End case

Ver também

Selected record number