version 5
TRIER PAR FORMULE (table{; expression{; > ou <}}{; expression2; > ou <2; ...; expressionN; > ou <N})
Paramètre | Type | Description | |
table | Table | Table de laquelle trier la sélection d'enregistrements | |
expression | Formule de tri des enregistrements (peut être de type | ||
Alphanumérique, Réel, Entier, Entier long, Date, | |||
Heure ou Booléen) | |||
> ou < | Ordre de tri pour chaque niveau : | ||
> ordre croissant ou | |||
< ordre décroissant |
Description
TRIER PAR FORMULE trie (réordonne) les enregistrements de la sélection courante de table pour le process courant. Une fois le tri effectué, le premier enregistrement de la nouvelle sélection courante devient le nouvel enregistrement courant.
Notez que vous devez spécifier table. Vous ne pouvez pas utiliser une table par défaut.
Vous pouvez trier la sélection sur un ou plusieurs niveaux. Pour chaque niveau, vous passez une expression dans expression et un ordre de tri dans > ou <. Si vous passez le symbole "supérieur à" (>), l'ordre est croissant. Si vous passez le symbole "inférieur à" (<), l'ordre est décroissant. Si vous ne passez pas ce paramètre, l'ordre est par défaut croissant.
Le paramètre expression peut être de type Alpha, Réel (Numérique), Entier, Entier long, Date, Heure ou Booléen.
Quelle que soit la manière dont le tri est défini, si l'opération risque de prendre un certain temps, 4e Dimension affiche automatiquement un message contenant un thermomètre de progression. Vous pouvez décider d'afficher ou de ne pas afficher ce message pour le process à l'aide des commandes SUPPRIMER MESSAGES et LAISSER MESSAGES. Si le thermomètre de progression est affiché, l'utilisateur peut cliquer sur le bouton Stop pour interrompre l'opération. Si le tri s'est correctement déroulé, la variable système OK prend la valeur 1. Sinon, si le tri est interrompu, OK prend la valeur 0 (zéro).
4D Server : Comme expression ne peut pas être interprétée par 4D Server, chaque enregistrement est envoyé au poste client et la formule de tri est évaluée sur ce poste. Pour cette raison, le tri par formule n'est guère efficace, il est conseillé d'utiliser de préférence la commande TRIER lorsque c'est possible.
A la différence de TRIER, TRIER PAR FORMULE effectue toujours un tri séquentiel.
Exemple
L'exemple suivant trie les enregistrements de la table [Personnes] dans l'ordre décroissant par rapport à la longueur du nom de famille de chaque personne. L'enregistrement de la personne qui a le nom le plus long sera le premier enregistrement de la sélection courante :
TRIER PAR FORMULE ([Personnes]; Longueur ([Personnes]Nom); <)
Référence