4D v16.3

REDUIRE SELECTION

Accueil

 
4D v16.3
REDUIRE SELECTION

REDUIRE SELECTION 


 

REDUIRE SELECTION ( {laTable ;} nombre ) 
Paramètre Type   Description
laTable  Table in Table de laquelle réduire la sélection ou Table par défaut si ce paramètre est omis
nombre  Entier long in Nombre d'enregistrements à conserver

La commande REDUIRE SELECTION crée une nouvelle sélection d'enregistrements pour laTable. 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(laTable;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



Voir aussi  

CHERCHER
Présentation des ensembles
SCAN INDEX
TRIER

 
PROPRIÉTÉS 

Produit : 4D
Thème : Sélections
Numéro : 351
Nom intl. : REDUCE SELECTION

Cette commande change l'enregistrement courantCette commande change la sélection couranteCommande(s) éligible(s) à l'exécution dans un process préemptif

 
HISTORIQUE 

Créé : < 4D v6

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)