TABLEAU MULTI TRI

4D - Documentation   Français   English   German   4e Dimension 2003, Commandes par thèmes   4e Dimension 2003, Liste alphabétique des commandes   4e Dimension 2003, Constantes par thèmes   Retour   Précédent   Suivant

version 2003


TABLEAU MULTI TRI (nomTabPtr; nomTabTri)

ParamètreTypeDescription
nomTabPtrTableau pointeurTableau de pointeurs de tableaux
nomTabTriTableau Entier longTableau d'ordres de tri (1 = tri par ordre
croissant, -1 = tri par ordre décroissant,
0 = synchronisation avec des tris précédents)

Description

La commande TABLEAU MULTI TRI vous permet d'effectuer un tri multi-niveaux sur un ensemble de tableaux. Cette fonction est particulièrement utile dans le cadre des zones de défilement groupées dans les formulaires. Elle est également précieuse pour les développements génériques (par exemple, vous pouvez créer une méthode générique de tri des tableaux de tout type, ou encore générer l'équivalent d'un TRIER TABLEAU générique).

La paramètre nomTabPtr contient le nom d'un tableau de pointeurs de tableaux ; chaque élément de ce tableau est un pointeur désignant un tableau à trier. Les tris seront effectués dans l'ordre des pointeurs de tableaux défini par nomTabPtr.

Note : nomTabPtr peut être un tableau de pointeurs local ($nomTabPtr), process (nomTabPtr) ou interprocess (<>nomTabPtr). En revanche, les éléments de ce tableau doivent pointer sur des tableaux process ou interprocess uniquement.

La paramètre nomTabTri contient le nom d'un tableau dont chaque élément indique l'ordre de tri (-1, 0 ou 1) de l'élément du tableau de pointeurs correspondant :

-1 = Tri par ordre décroissant.

0 = Le tableau n'est pas utilisé comme critère de tri mais doit être trié en fonction des autres tris.

1 = Tri par ordre 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).

A chaque élément du tableau nomTabPtr doit correspondre un élément du tableau nomTabTri. Les deux tableaux doivent donc avoir exactement le même nombre d'éléments.

Exemple

L'exemple suivant crée quatre tableaux et les trie par ville (ordre croissant) et société (ordre décroissant), les deux derniers tableaux tab_Noms et tab_NumTel étant synchronisés en fonction des critères de tri précédents :

   TOUT SELECTIONNER([Employés])
   SELECTION VERS TABLEAU([Employés]Ville;tab_Villes;[Employés]Société;tab_Société;[Employés]Nom;
                                          tab_Noms;[Employés]NumTel;tab_NumTel)
   TABLEAU POINTEUR(tab_Pointeurs;4)
   TABLEAU ENTIER LONG(tab_Tris;4)
   tab_Pointeurs{1}:=->tab_Villes
   tab_Tris{1}:=1
   tab_Pointeurs{2}:=->tab_Société
   tab_Tris{2}:=-1
   tab_Pointeurs{3}:=->tab_Noms
   tab_Tris{3}:=0
   tab_Pointeurs{4}:=->tab_NumTel
   tab_Tris{4}:=0
   TABLEAU MULTI TRI (tab_Pointeurs;tab_Tris)

Si vous souhaitez que le tableau des noms soit utilisé comme troisième critère de tri, il vous suffit d'assigner la valeur 1 à l'élément tab_Tris{3}. Ou bien, si vous souhaitez que les tableaux soient triés uniquement sur le critère des villes, assignez la valeur 0 aux éléments tab_Tris{2}, tab_Tris{3} et tab_Tris{4}. De cette manière, vous obtenez un résultat identique à TRIER TABLEAU(tab_Villes;tab_Société;tab_Noms;tab_NumTel;>).

Référence

SELECTION VERS TABLEAU, TRIER, TRIER TABLEAU.


4D - Documentation   Français   English   German   4e Dimension 2003, Commandes par thèmes   4e Dimension 2003, Liste alphabétique des commandes   4e Dimension 2003, Constantes par thèmes   Retour   Précédent   Suivant