TRIER TABLEAU

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


TRIER TABLEAU (tableau{; tableau2; ...; tableauN}{; sensDuTri})

ParamètreTypeDescription
tableauTableauTableau(x) à trier
sensDuTri> ou <> pour effectuer un tri par ordre croissant ou
< pour effectuer un tri par ordre décroissant
Tri croissant si ce paramètre est omis

Description

La commande TRIER TABLEAU trie un ou plusieurs tableaux 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 paramètre sensDuTri spécifie l'ordre du tri : croissant ou décroissant. Si sensDuTri est égal au symbole "supérieur à" (>), l'ordre du tri est croissant. Si sensDuTri est égal au symbole "inférieur à" (<), l'ordre du tri est décroissant. Si sensDuTri 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). Ce fonctionnement est particulièrement utile avec les zones de défilement dans des formulaires : TRIER TABLEAU assure la synchronisation des tableaux utilisés pour ces zones.

Exemples

(1) 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) 

(2) 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;<)

Référence

SELECTION VERS TABLEAU, TABLEAU MULTI TRI, 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