version 11.2 (Modifiée)
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, 4D 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 : A compter de la version 11 de 4D Server, cette commande est exécutée sur le serveur, ce qui optimise son exécution. A noter qu'en cas d'appel direct de variables dans l'expression, le tri est calculé avec la valeur de la variable sur le poste client.
En revanche, ce principe n'est pas appliqué pour les formules utilisant des méthodes qui, elles-mêmes, font appel à des variables (la valeur des variables est évaluée sur le serveur). Dans ce contexte, il peut être judicieux d'utiliser l'attribut de méthode "Exécuter sur serveur" permettant d'exécuter une méthode sur le serveur en lui passant des paramètres (variables) (cf. manuel Mode Développement).
Dans les versions précédentes de 4D Server, cette commande était exécutée sur les postes clients. Par compatibilité, ce fonctionnement est maintenu dans les bases de données converties en version 11. Une préférence de compatibilité et un sélecteur de la commande FIXER PARAMETRE BASE permettent toutefois d'adopter le fonctionnement de la version 11 (exécution sur le serveur) dans ces bases de données.
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