Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v20 R7
REDUCE SELECTION

REDUCE SELECTION 


 

REDUCE SELECTION ( {tabela ;} numero ) 
Parâmetro Tipo   Descrição
tabela  Tabela in Tabela para a qual vai reduzir a seleção, ou tabela padrão, se omitido
numero  Inteiro longo in Número de registros para manter selecionados

REDUCE SELECTION cria uma nova seleção de registros para tabela. O comando retorna o primeiro numero de registros da seleção atual de tabela. REDUCE SELECTION se aplica à seleção atual de tabela no processo atual. Ele modifica a seleção atual de tabela para o processo atual; o primeiro registro da nova seleção se torna o  o registro atual.

Nota: se a instrução REDUCE SELECTION(tabela;0) for executada, não haverá mais seleção nem registro atual em tabela.

Exemplo  

O seguinte exemplo pesquisa as estatísticas corretas para uma concorrência mundial entre os distribuidores de mais de 20 países. Para cada país, os 3 melhores distribuidores que tenham vendido mais de $50.000 em produtos estão entre os 100 melhores distribuidores do mundo e recebem um prêmio. Com umas poucas linhas de código, esta petição complexa pode ser executada utilizando pesquisas indexadas:

 CREATE EMPTY SET([Distribuidores];"Ganhadores") ` Criar um conjunto vazio
 SCAN INDEX([Distribuidores]Quantidade vendas;100;<) ` Buscar desde o final do índice CREATE SET([Distribuidores];"100 melhores distribuidores") ` Colocar os registros selecionados em um conjunto
 For($Pais;1;Records in table([Paises])) ` Para cada país
  ` Buscar os distribuidores neste país
    QUERY([Distribuidores];[Distribuidores]País=[Países]Nome;*) ` ...que venderam mais de $50.000
    QUERY([Distribuidores];&;[Distribuidores]Quantidade vendas>=50000)
    CREATE SET([Distribuidores];"DistribuidoresGanhadores") ` Colocá-los em um conjunto ` Devem estar no grupo dos 100 melhores distribuidores
    INTERSECTION("DistribuidoresGanhadores";"100 melhores distribuidores";"DistribuidoresGanhadores")
    USE SET("DistribuidoresGanhadores") ` Ganhadores potenciais por país
  ` Ordená-los pelos resultados em ordem descendente
    ORDER BY([Distribuidores];[Distribuidores]Quantidade vendas;<)
    REDUCE SELECTION([Distribuidores];3) ` Assumir os três melhores distribuidores
    CREATE SET([Distribuidores];"DistribuidoresGanhadores") ` Ganhadores por país
  ` Colocá-los na lista de ganhadores por país
    UNION("DistribuidoresGanhadores";"Ganhadores";"Ganhadores")
 End for
 CLEAR SET("100 melhores distribuidores") `Não necessitamos mais este conjunto
 CLEAR SET("DistribuidoresGanhadores") ` Não necessitamos mais este conjunto
 USE SET("Ganhadores") ` Aqui estão os ganhadores
 CLEAR SET("Ganhadores") ` Não necessitamos mais este conjunto
 OUTPUT FORM([Distribuidores];"Carta de ganhadores") ` Selecionar a carta
 PRINT SELECTION([Distribuidores]` Imprimir as cartas



Ver também 

Conjuntos
ORDER BY
QUERY
SCAN INDEX

 
PROPRIEDADES 

Produto: 4D
Tema: Seleção
Número 351

O comando altera o registro atualO comando altera a seleção atualThis command can be run in preemptive processes

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: < 4D v6

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v20 R7)