Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v20 R7
TRIER TABLEAU

TRIER TABLEAU 


 

TRIER TABLEAU ( tableau {; tableau2 ; ... ; tableauN}{; > ou <} ) 
Paramètre Type   Description
tableau  Tableau in Tableau(x) à trier
> ou <  Opérateur in ">" pour effectuer un tri par ordre croissant ou "<" pour effectuer un tri par ordre décroissant (tri croissant si omis)

La commande TRIER TABLEAU trie un ou plusieurs tableau(x) par ordre croissant ou décroissant.

Notes : 

  • Vous ne pouvez pas trier de tableaux de type Pointeur ou Image. Vous pouvez trier un élément d'un tableau à deux dimensions (c'est-à-dire t2DTableau{$vlCetElément}), mais vous ne pouvez pas trier le tableau 2D lui-même (c'est-à-dire t2DTableau).
  • Vous pouvez trier les tableaux de type Object. Les éléments Null sont regroupés et les éléments du tableau sont triés selon un ordre interne. 

Le second paramètre spécifie l'ordre du tri : croissant ou décroissant. Si ce paramètre est égal au symbole “supérieur à” (>), l'ordre du tri est croissant. S'il est égal au symbole “inférieur à” (<), l'ordre du tri est décroissant. S'il est omis, l'ordre du tri est croissant.

Si plus d'un tableau est spécifié, les tableaux sont triés en fonction de l'ordre défini pour le premier tableau (les tris multi-niveaux ne sont pas possibles dans ce cas). Utilisez plutôt la commande TABLEAU MULTI TRI si vous souhaitez effectuer des tris de tableaux synchronisés.

L'exemple suivant crée deux tableaux et les trie en fonction du nom de la société :

 TOUT SELECTIONNER([Personnes])
 SELECTION VERS TABLEAU([Personnes]Noms;tabNoms;[Personnes]Sociétés;tabSociétés)
 TRIER TABLEAU(tabSociétés;tabNoms;>)

Cependant, comme TRIER TABLEAU n'effectue pas de tris multi-niveaux, les noms des personnes apparaîtront en désordre à l'intérieur de chaque société. Pour que les noms des personnes soient triés pour chaque société, vous devrez plutôt écrire :

 TOUT SELECTIONNER([Personnes])
 TRIER([Personnes];[Personnes]Sociétés;>;[Personnes]Noms;>)
 SELECTION VERS TABLEAU([Personnes]Noms;tabNoms;[Personnes]Sociétés;tabSociétés)

Vous affichez les noms d'une table [Personnes] dans une fenêtre flottante. Cette liste de noms peut être triée de A vers Z ou de Z vers A en fonction du bouton sur lequel vous cliquez, dans la fenêtre. Comme il se peut que certaines personnes portent le même nom, vous avez également créé un champ [Personnes]Numéro ID qui est un champ indexé unique. Lorsque vous cliquez sur un nom dans la liste, vous voulez récupérer l'enregistrement correspondant. En utilisant un tableau synchronisé et caché des numéros d'ID, vous êtes certain d'accéder à l'enregistrement correspondant au nom sélectionné :

 

  ` Méthode objet du tableau tabNoms
 Au cas ou
    :(Evenement formulaire code=Sur chargement)
       TOUT SELECTIONNER([Personnes])
       SELECTION VERS TABLEAU([Personnes]Noms;tabNoms;[Personnes]Numéro ID;tabIDs)
       TRIER TABLEAU(tabNoms;tabIDs;>)
    :(Evenement formulaire code=Sur libération)
       EFFACER VARIABLE(tabNoms)
       EFFACER VARIABLE(tabIDs)
    :(Evenement formulaire code=Sur clic)
       Si(tabNoms#0)
  ` Utiliser le tableau tabIDs pour récupérer le bon enregistrement
          CHERCHER([Personnes];[Personnes]Numéro IDr=tabIDs{tabNoms})
  ` Traiter ici l'enregistrement
       Fin de si
 Fin de cas
 
  ` Méthode objet du bouton bAversZ
  ` Tri croissant des tableaux en conservant la synchronisation
 TRIER TABLEAU(tabNoms;tabIDs;>)
 
  ` Méthode objet du bouton bZversA
  ` Tri décroissant des tableaux en conservant la synchronisation
 TRIER TABLEAU(tabNoms;tabIDs;<)

 



Voir aussi  

Chercher dans tableau trié
SELECTION VERS TABLEAU
TABLEAU MULTI TRI
TRIER

 
PROPRIÉTÉS 

Produit : 4D
Thème : Tableaux
Numéro : 229
Nom intl. : SORT ARRAY

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
PAGE CONTENTS 
 
HISTORIQUE 

Créé : < 4D v6

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v20 R7)