4D v16.3

TRIER TABLEAU

Accueil

 
4D v16.3
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.

Note : 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).

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=Sur chargement)
       TOUT SELECTIONNER([Personnes])
       SELECTION VERS TABLEAU([Personnes]Noms;tabNoms;[Personnes]Numéro ID;tabIDs)
       TRIER TABLEAU(tabNoms;tabIDs;>)
    :(Evenement formulaire=Sur libération)
       EFFACER VARIABLE(tabNoms)
       EFFACER VARIABLE(tabIDs)
    :(Evenement formulaire=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

 
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)