Saltar para o conteúdo principal
Versão: Próximo

DISPLAY SELECTION

DISPLAY SELECTION ( {tabela}{; modoSelecao}{; entraLista}{; *}{; *} )

ParâmetroTipoDescrição
tabelaTableTabela a exibir, ou tabela padrão, se omitido
modoSelecaoIntegerModo de Seleção
entraListaBooleanAutorizar Entrada na lista de opção
*OperatorUtilizar o formulário de saída em caso de seleção de somente um registro e ocultar as barras de deslocamento no formulário de entrada
*OperatorMostrar as barras de deslocamento no formulário de entrada (anular o segundo efeito do primeiro parâmetro *)

Descrição

DISPLAY SELECTION mostra a seleção de tabela, utilizando o formulário de saída. Os registros se mostram em uma lista pela qual pode ser deslocada similar ao do modo Desenho. Se o usuário fizer duplo clique em um registro, por padrão é mostrado o registro no formulário de entrada atual. A lista é mostrada na janela do primeiro plano.

Para mostrar uma seleção e poder igualmente modificar um registro no formulário de entrada atual depois de fazer duplo clique nele (como é feito na janela do ambiente Desenho), utilize OBJECT SET ENTERABLE ao invés de DISPLAY SELECTION.

A informação a continuação aplica a ambos comandos, exceto pela informação sobre a modificação de registros.

Depois de executar DISPLAY SELECTION, não há registro atual. Utilize um comando tal como FIRST RECORD ou LAST RECORD para selecionar um.

O parâmetro modoSelecao é utilizado para definir as possibilidades de seleção de registros na lista utilizando o mouse. Neste parâmetro pode passar uma das seguintes constantes do tema “Parâmetro de formulário”:

ConstanteTipoValor
Multiple selectionInteiro longo2
No selectionInteiro longo0
Single selectionInteiro longo1

Se não passa o parâmetro modoSelecao, por padrão é utilizado o modo “Seleção múltipla”.

O parâmetro entradaLista lhe permite autorizar o modo “Entrada em lista” na lista mostrada. Este modo permite ao usuário selecionar e modificar diretamente os valores dos registros no formulário de saída. Passe True para ativar este modo ou False para desativá-lo. Por padrão, se não passar o parâmetro entradaLista, o modo “Entrada em lista” é desativado.

Lembre que com o comando DISPLAY SELECTION, este parâmetro apenas permite a seleção dos valores na lista e não sua modificação. De fato, o comando DISPLAY SELECTION carrega os registros da seleção atual em modo apenas leitura. Só o comando MODIFY SELECTION permite efetivamente a entrada de valores.

Nota: O comando OBJECT SET ENTERABLE permite ativar ou desativar facilmente o modo Entrada em lista.

Algumas regras relacionadas com o parâmetro opcional *:

- Se a seleção contiver apenas um registro e o primeiro parâmetro opcional * não for utilizado, o registro será mostrado no formulário de entrada ao invés do formulário de saída.
- Se o primeiro parâmetro opcional * for especificado, o registro único será mostrado no formulário de saída.
- Se o primeiro parâmetro opcional * for especificado e o usuário mostrar o registro no formulário de entrada fazendo duplo clique sobre ele, as barras de rolagem do formulário serão ocultadas. Para anular este efeito, passe o segundo parâmetro opcional *.

Pode colocar botões personalizados na área de cabeçalho ou de rodapé do formulário de saída para terminar a execução do comando DISPLAY SELECTION. Pode utilizar os botões automáticos Aceitar ou Cancelar para sair, ou utilizar um método de objeto que chame aos comandos ACCEPT ou CANCEL. Quando um formulário de saída chamado pelo comando DISPLAY SELECTION não tem botões, apenas a tecla Escape (Windows) ou Esc (Mac OS) permitem sair da lista.

Durante e depois da execução de DISPLAY SELECTION, os registros que o usuário selecionar serão conservados em um conjunto chamado UserSet. UserSet está disponível através de DISPLAY SELECTION aos métodos de objeto dos botões, aos métodos chamados pelos comandos de menu, assim como para o método de projeto que chamou DISPLAY SELECTION.

Exemplo 1

O exemplo a seguir seleciona todos os registros na tabela [Pessoas]. O comando DISPLAY SELECTION mostra os registros e permite ao usuário selecionar os registros a imprimir. Finalmente, seleciona os registros com USE SET, e os imprime com PRINT SELECTION:

 ALL RECORDS([Pessoas]) // Seleção de todos os registros
 DISPLAY SELECTION([Pessoas];*) // Visualização dos registros
 USE SET("UserSet") // Utilizar apenas os registros selecionados pelo usuário
 PRINT SELECTION([Pessoas]) // Imprimir os registros que o usuário selecionou

Exemplo 2

Ver o exemplo #6 do comando Form event. Este exemplo mostra todos os testes que pode necessitar para monitorar completamente os eventos que ocorrem durante a execução do comando DISPLAY SELECTION.

Exemplo 3

Para reproduzir as funcionalidades oferecidas pelo menu Registros do ambiente Desenho quando utiliza DISPLAY SELECTION ou MODIFY SELECTION em modo Aplicação, aja da seguinte maneira:

a. No ambiente Desenho, crie uma barra de menus com os comandos de menu que desejar, por exemplo, Mostrar todos, Procurar e Ordenar.

b. Associe esta barra de menus (utilizando o menu “Barra de menus associada” na caixa de diálogo de propriedades do formulário) com o formulário de saída utilizado com os comandos DISPLAY SELECTION ou MODIFY SELECTION.

c. Associe os seguintes métodos de projeto aos seus comandos de menu:

  // M_SHOW_ALL (associado ao comando de menu Mostrar todos)
 $vpCurTabela:=Current form table
 ALL RECORDS($vpCurTabela->)
  // M_QUERY (associado ao comando de menu Buscar)
 $vpCurTabla:=Current form table
 QUERY($vpCurTable->)
  // M_ORDER_BY (associado ao comando de menu Ordenar)
 $vpCurTabla:=Current form table
 ORDER BY($vpCurTabela->)

Também pode utilizar outros comandos, tais como PRINT SELECTION, QR REPORT, etc. para oferecer todas as opções de menu padrão que desejar cada vez que visualize ou modifique uma seleção no modo Aplicação. Graças ao comando Current form table , estes métodos são genéricos, e a barra de menus as quais são compatíveis podem ser associadas a todo formulário de saída de qualquer tabela.

Ver também

Conjuntos
Form event code
MODIFY SELECTION

Propriedades

Número do comando59
Thread-seguro
Proibido no servidor