REDUIRE SELECTION

4D - Documentation   Français   English   German   Español   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant

version 5


REDUIRE SELECTION ({laTable; }nombre)

ParamètreTypeDescription
laTableTableTable de laquelle réduire la sélection ou
Table par défaut si ce paramètre est omis
nombreNumériqueNombre d'enregistrements à conserver

Description

La commande REDUIRE SELECTION crée une nouvelle sélection d'enregistrements pour table. La commande réduit la sélection de laTable aux nombre premiers enregistrements. REDUIRE SELECTION s'applique à la sélection courante de laTable pour le process courant. Le premier enregistrement de la nouvelle sélection courante devient l'enregistrement courant.

Note : Si l'instruction REDUIRE SELECTION(0) est exécutée, il n'y a plus de sélection ni d'enregistrement courants dans la table.

Exemple

L'exemple suivant établit des statistiques pour une compétition mondiale parmi les revendeurs dans plus de 20 pays. Pour chaque pays, les trois meilleurs revendeurs qui ont vendu plus de 50 000 Euros de produits font partie des 100 meilleurs revendeurs dans le monde et sont recompensés. Avec peu de lignes de code, cette requête complexe peut être effectuée en utilisant des recherches indexées :

   ENSEMBLE VIDE([Revendeurs];"Gagnants")  ` Créer un ensemble vide 
   SCAN INDEX([Revendeurs]Montant;100;<)  ` Chercher à la fin de l'index 
   NOMMER ENSEMBLE([Revendeurs];"100 Meilleurs Revendeurs")  
         ` Placer les enregistrements sélectionnés dans un ensemble
   Boucle ($Pays;1;Enregistrements dans table([Pays]))  ` pour chaque pays 
         ` Chercher les revendeurs dans ce pays 
      CHERCHER([Revendeurs];[Revendeurs]Pays=NomPays;*)  ` ...qui ont vendu plus de 50000
      CHERCHER(&;[Revendeurs];[Revendeurs]Montant vendu>=50000) 
      NOMMER ENSEMBLE([Revendeurs];"GagnantsRevendeurs")  ` Les placer dans un ensemble 
         ` Ils doivent être placés dans le groupe des 100 meilleurs revendeurs 
      INTERSECTION("GagnantsRevendeurs";"100 Meilleurs Revendeurs";"GagnantsRevendeurs") 
      UTILISER ENSEMBLE("GagnantsRevendeurs") ` Gagnants potentiels pour le pays 
         ` Trier les résultats en ordre décroissant 
      TRIER([Revendeurs];[Revendeurs]Montant vendu;<) 
      REDUIRE SELECTION([Revendeurs];3)  ` Garder les trois meilleurs 
      NOMMER ENSEMBLE([Revendeurs];"GagnantsRevendeurs")  ` Les gagnants pour le pays 
         ` Les placer dans un ensemble des gagnants mondiaux
      REUNION("GagnantsRevendeurs";"LesGagnants";"LesGagnants") 
   Fin de boucle 
   EFFACER ENSEMBLE("100 Meilleurs Revendeurs")  ` Nous n'avons plus besoin de cet ensemble 
   EFFACER ENSEMBLE("GagnantsRevendeurs")  ` Nous n'avons plus besoin de cet ensemble
   UTILISER ENSEMBLE("LesGagnants")  ` Voici les gagnants 
   EFFACER ENSEMBLE("LesGagnants")  ` Nous n'avons plus besoin de cet ensemble 
   FORMULAIRE SORTIE([Revendeurs];"Lettre des gagnants")  ` Sélectionner la lettre 
   IMPRIMER SELECTION([Revendeurs]) ` Imprimer les lettres

Référence

CHERCHER, Présentation des ensembles, SCAN INDEX, TRIER.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant