version 6.5 (Modifiée)
VALEURS DISTINCTES (leChamp; tableau)
Paramètre | Type | Description | |
leChamp | Champ | Champ à utiliser | |
tableau | Tableau | Tableau devant recevoir les données du | |
champ indexable |
Description
VALEURS DISTINCTES crée et remplit le tableau tableau avec toutes les valeurs distinctes provenant du champ leChamp pour la sélection courante de la table à laquelle le champ appartient.
Vous pouvez passer à cette commande tout type de champ indexable, c'est-à-dire dont le type supporte l'indexation mais qui n'est pas forcément indexé. Toutefois, l'exécution de la commande avec des champs non indexés est plus lente qu'avec des champs indexés. A noter également que dans ce cas, la commande perd l'enregistrement courant.
VALEURS DISTINCTES analyse et extrait les valeurs distinctes pour les enregistrements sélectionnés uniquement.
Note : Lorsque vous exécutez VALEURS DISTINCTES au sein d'une transaction non encore terminée, la commande tient compte des enregistrements créés au cours de la transaction.
Le tableau utilisé par VALEURS DISTINCTES doit être du même type que le champ passé en premier paramètre, sinon le tableau est retypé. Il y a une exception à cette règle : si le champ est de type Heure, le tableau correspondant doit être de type Entier long.
Après l'appel, la taille du tableau est égale au nombre de valeurs distinctes trouvées dans la sélection. La commande ne modifie pas la sélection courante ni l'enregistrement courant. Les éléments dans tableau sont triés par ordre croissant car VALEURS DISTINCTES utilise l'index du champ. Si cet ordre vous convient, vous n'avez donc pas besoin d'appeler TRIER TABLEAU après l'exécution de VALEURS DISTINCTES.
ATTENTION : VALEURS DISTINCTES peut créer des tableaux de taille importante, en fonction de la taille de la sélection courante, ainsi que du type et de la taille des données à charger. Comme les tableaux résident en mémoire, il peut être utile de tester la taille des tableaux créés après l'exécution de la commande, ou d'utiliser une méthode projet d'interception d'erreurs installée par la commande APPELER SUR ERREUR.
4D Server : Cette commande est optimisée pour 4D Server. Le tableau est créé et les valeurs sont calculées sur le serveur. Seul le tableau est envoyé au client.
Exemple
L'exemple suivant crée une liste de villes à partir de la sélection courante et indique à l'utilisateur le nombre de villes dans lesquelles la société dispose de magasins :
TOUT SELECTIONNER([Revendeurs]) ` Créer une sélection d'enregistrements VALEURS DISTINCTES([Revendeurs]Ville;taVilles) ALERTE("Cette société dispose de magasins dans " +Chaine(Taille tableau(taVilles))+" villes.")
Référence
APPELER SUR ERREUR, SELECTION LIMITEE VERS TABLEAU, SELECTION VERS TABLEAU.