Afficher liste hierarchique par ordre > ou <

Bonjour,

Dans un popup liste, je suis coincé par l’affichage > ou <

CHERCHER([Famille_Copie];[Famille_Copie]Nom#"")
TABLEAU TEXTE(vChoixNom;0)
SÉLECTION VERS TABLEAU([Famille_Copie]Nom;vChoixNom;[Famille_Copie]Nom;AA_Texte)
vChoixNom:=1
    Trier([Famille_Copie];[Famille_Copie]Nom;>)

Ou est l’erreur ?

Autre chose, dans [Famille_Copie]Nom il y a plusieurs noms identiques mais avec des prénoms différents, je cherche à charger mon vChoixNom avec un seul nom

Merci de votre aide

Bonjour Pascal

il faut TRIER avant SELECTION VERS TABLEAU
<code 4D>
CHERCHER([Famille_Copie];[Famille_Copie]Nom#"")
Trier([Famille_Copie];[Famille_Copie]Nom;>)
TABLEAU TEXTE(vChoixNom;0)
SÉLECTION VERS TABLEAU([Famille_Copie]Nom;vChoixNom;[Famille_Copie]Nom;AA_Texte)
vChoixNom:=1

</code 4D>

ou mieux, surtout en C/S
<code 4D>
CHERCHER([Famille_Copie];[Famille_Copie]Nom#"")
SÉLECTION VERS TABLEAU([Famille_Copie]Nom;vChoixNom;[Famille_Copie]Nom;AA_Texte)
TRIER TABLEAU(vChoixNom; AA_Texte)
vChoixNom:=1

</code 4D>

et pour votre problème : “je cherche à charger mon vChoixNom avec un seul nom”
<code 4D>
CHERCHER([Famille_Copie];[Famille_Copie]Nom#"")
VALEURS DISTINCTES([Famille_Copie]Nom;vChoixNom)
vChoixNom:=1

</code 4D>
VALEURS DISTINCTES fournit un tableau déjà trié…

Bon dimanche

Bonjour et Merci Jean-Jacques,

Effectivement avec les lignes dans le bon ordre cela fonctionne parfaitement pour le trie.

La commande valeurs distinctes fonctionne très bien en visuelle mais pas en sélection
J’explique
liste de 20 noms dont les 5 premiers sont les mêmes avec des prénoms différents, les 8,9,10, sont aussi les mêmes avec des prénoms différents eux aussi, ce qui nous fait une liste de 14 noms
affichés dans le popup.
La sélection du 2 ou 3 ou 4 ou 5 ème nom de cette liste retourne le premier nom il faut sélectionner le 6 ème pour avoir le 2ème affiche dans la liste donc un décalage de 4, correspondant à la liste des 20 noms et ainsi de suite pour les autres ce qui fait que je ne peux pas sélectionner les 6 derniers.
Ce qui me fait penser que la liste complète est présente mais qu’un seul de chaque est affiché

Y a t’il un remède ?

Ce que vous souhaitez est peut-être ceci :
<code 4D>
CHERCHER([Famille_Copie];[Famille_Copie]Nom#"")
SÉLECTION VERS TABLEAU([Famille_Copie]Nom;vChoixNom;[Famille_Copie]Prenom;$_prenom)//Je présume que vous avez un champ “prénom”
Boucle($i;1;taille tableau(vChoixNom);1)
vChoixNom{$i}:=vChoixNom{$i}+" "+$_prenom{$i}
Fin de boucle
TRIER TABLEAU(vChoixNom)
vChoixNom:=1

</code 4D>

Malheureusement cela ne fonctionne pas j’ai toujours ma liste complète avec ce code.

Précision: la recherche ne s’effectue que sur le nom pas avec le prénom

Valeurs distinctes fonctionnerai bien si il n’y avait pas ce problème de décalage sur une liste complète en sélection de l’affichage du popup

je suppose que ce n’est pas la première fois que cela arrive, je n’ai pas trouvé dans le Forum une solution

Je suis preneur de toutes les suggestions

Effectivement, je ne n’ai pas lu le titre de votre fil, où vous indiquez “Liste hiérarchique”
Votre code ressemble tellement à un pop-up, j’ai répondu “pop-up”
Et si vous choisissiez un objet de type “pop-up” ?

Pour une liste hiérarchique, voyez l’exemple de la doc
https://doc.4d.com/4Dv17/4D/17.3/AJOUTER-A-LISTE.301-4621663.fr.html

Oupsss.

C’est peut être moi qui ai mal interprété mes pensées, il ne s’agit pas de liste hiérarchique comme indiqué dan le titre du fil mais d’un popup liste écrit dans ma demande de départ.

La commande valeurs distinctes fonctionne parfaitement mais la sélection de ligne dans le popup “vChoixNom” ne correspond pas à la l’affichage de cette sélection

Voivi ce qui se passe : []32657204;“Your comment here…”[/]

Bonjour Pascal,
Puisqu’il s’agit bien d’un pop-up, votre image de gauche ne correspond pas à ce code :
<code 4D>
CHERCHER([Famille_Copie];[Famille_Copie]Nom#"")
SÉLECTION VERS TABLEAU([Famille_Copie]Nom;vChoixNom;[Famille_Copie]Prenom;$_prenom)
Boucle($i;1;taille tableau(vChoixNom);1)
vChoixNom{$i}:=vChoixNom{$i}+" "+$_prenom{$i}
Fin de boucle
TRIER TABLEAU(vChoixNom)
vChoixNom:=1
</code 4D>
Voudriez-vous l’essayer ?
Comme indiqué plus haut, je suppose que vous avez un champ “Prénom”, que j’ai nommé ici : [Famille_Copie]Prenom…à adapter le cas échéant
Bonne journée

Bonjour Jean-Jacques,

Malheureusement ce code me retourne la liste complète.

Je pense qu’il manque un petit truc pour que valeurs distinctes fonctionne correctement ou que votre code soit modifié mais la je sais plus faire

je suis preneur pour toutes nouvelles idées

Merci

Bonjour à tous,
Bonjour Olivier, Bonjour Vincent,

Ne peut on imaginer un champ [Famille_Copie]Nom_Bis

si([Famille_Copie]Nom_Bis= … // Doublon " je ne sais pas quel bout de code écrire "
[Famille_Copie]Nom_Bis:=""
sinon
[Famille_Copie]Nom_Bis:=[Famille_Copie]Nom
fin de si

Ensuite dans formulaire [Recompenses];“Saisie”

CHERCHER([Famille_Copie];[Famille_Copie]Nom_Bis#"")
Trier([Famille_Copie];[Famille_Copie]Nom_Bis;>)
TABLEAU TEXTE(vChoixNom;0)
SÉLECTION VERS TABLEAU([Famille_Copie]Nom_Bis;vChoixNom;[Famille_Copie]Nom_Bis;AA_Texte)
vChoixNom:=1

Avez vous le bout de code pour ne pas avoir de doublon ?

Merci

J’ai l’impression que c’est votre initialisation de la position dans votre liste qui ne va pas.
Il faut chercher la valeur de votre nom dans votre tableau pour l’initialiser (cad. avoir la petite coche en face du BON nom)
Au pire si le nom n’est pas présent dans la liste le rajouter au tableau.

<code 4D>
C_TEXTE($valeur) //Nom au chargement de la fiche
$valeur:=VariableNom //placer ici le nom de la variable que vous affichez [Famille_Copie]Nom (?)

CHERCHER([Famille_Copie];[Famille_Copie]Nom#"")
VALEURS DISTINCTES([Famille_Copie]Nom;vChoixNom)
C_ENTIER LONG($pos)
Si(Chercher dans tableau trié(vChoixNom;$valeur;>;$pos)
vChoixNom:=$pos
Sinon
INSERER DANS TABLEAU(vChoixNom ;$pos)
vChoixNom{$pos}:=$valeur
vChoixNom:=$pos
Fin de si

</code 4D>

Sinon regardez l’exemple de la doc https://doc.4d.com/4Dv17/4D/17.3/Pop-upsListes-deroulantes.300-4639917.fr.htmlici>

Wouhaaaa, c’est extra, le petit bout de code fonctionne à merveille.

Un grand merci à toi Manuel.
Je remercie particulièrement Jean-Paul pour sa détermination à m’aider.

Je vais pouvoir passer à autre chose.

Bonne soirée à tous