
OnSelect sur barre du graphique
OnSelect sur barre du graphique
Posté par Thomas sur 18 décembre 2022 at 8h58Bonjour les pro,
Je cherche un moyen de rendre cliquable les barres d’un graphique histogramme pour par exemple faire un “Navigate” avec incrémentation d’une variable (comme filtre pour la galerie) et ce sur chaque barre.
Pour le moment je n’ai rien trouvé de concluant mise à par rajouter des boutons invisibles sur chaque barre mais c’est moyen comme solution surtout que le bouton n’est pas dynamique à la hauteur de la barre 🤕
Merci d’avance
PostID=mTCg7t7DUyKPy5Q
Thomas a répondu 1 year, 4 months ago 1 Membre · 8 Réponses- 8 Réponses
Salut Thomas,
La solution la plus simple que je vois c’est de te faire ton propre histogramme à partir d’une galerie horizontale où chaque barre serait un bouton. Franchement, assez facile à faire… Si t’as besoin d’aide n’hésite pas…
Tiens je pourrais même en faire un composant… 😁
CommentID=5S4uZYZ4FiqgN9O, PostID=mTCg7t7DUyKPy5Q
Merci pour ta réponse aussi rapide R3dKap,
Mon graphique à sa table (Graph) générée par divers bouton qui créer un collection différente à chaque fois
ClearCollect(Graph;Sort(DropColumns(AddColumns(GroupBy(AP_SAT; "HFB"; "HFBTotal");"Total par HFB";Sum(HFBTotal;'ASSQ_x0020_>_x0020_a_x0020_RSSq_x0020_d''au_x0020_moins_x0020_1_x0020_palettes'));"HFBTotal");Value(HFB);Ascending))
Je créé ma galerie horizontal, je choisis ma table Graph mais après comment je fais pour que les boutons soient en histogramme à hauteur variable. Il faut que je fasse une fonction pour sa hauteur en tenant compte de la valeur HFBTotal ?
Comment avoir la couleur différente pour chaque bouton (barre histogramme) ? (edit trouvé avec une imbrication de si mais il doit y avoir plus simple car mon abscisse à 18 barres)
Et comment avoir le contenu de la galerie en bas et non en haut ? (edit trouvé)
CommentID=5dZzjLO5hBJBJgs, PostID=mTCg7t7DUyKPy5Q
Pour la hauteur du bouton dynamique je fais ThisItem.’Total par HFB’*10 mais cela peut poser problème si certaines valeurs sont trop élevées !
Autre problème c’est que j’ai placé mon axe des abscisse en bas et du coup le changement de la hauteur est inversé 🤨 car le début du bouton est en haut !
edit : ok il faut aussi rendre dynamique “Y” en plus de “hauteur”
edit 2 :
y => 980-(ThisItem.’Total par HFB’*10)
hauteur => (ThisItem.’Total par HFB’*10)
Mais sceptique sur le *10 qui peut poser problème si de trop grandes valeurs
CommentID=VMQXYlt1kQytYbu, PostID=mTCg7t7DUyKPy5Q
Hello,
Tu peux utiliser les graphiques de base dans l’éditeur, ces objets disposent d’une propriété OnSelect.
Il y a cependant une petite nuance de syntaxe avec une galerie, pour obtenir la valeur sélectionné, il ne faudra pas utiliser “ThisItem.”, mais “Self.Selected.” en préfixe de la valeur à récupérer.
Voici un exemple dans lequel je fais un Navigate et entre autres variables, j’update “vctxDefaultProjStatus” au nom de la colonne sélectionnée, pour l’utiliser comme filtre par défaut dans un autre écran :
CommentID=ebqVVkBWBy2fKjJ, PostID=mTCg7t7DUyKPy5Q
Merci a toi également , c’est bon à savoir mais j’ai finaliser la façon de R3dKap
Il me manque juste ces satanées formules pour rendre dynamique les boutons en “y” et “hauteur”
edit: bon je crois que c’est bon…
Label11 => Max(Gallery2.AllItems;Title5)
y => 980-(900/Label11.Text)*ThisItem.’Total par HFB’
hauteur => (900/Label11.Text)*ThisItem.’Total par HFB’
Ca vous semble correct ?
CommentID=M3KdI5sAmNKK7ep, PostID=mTCg7t7DUyKPy5Q
ça me semble correct, mais normalement tu peux simplifier pour le Y, car tu peux réutiliser le calcul fait pour la hauteur :
Y=> 980-Self.Height
CommentID=9Mi8iaOoUJ6w0q6, PostID=mTCg7t7DUyKPy5Q
Thomas bravo, tu t’es bien débrouillé tout seul… 😉
Juste, je suppose que 980 c’est la hauteur de ta galerie et que tu utilises 900 pour laisser un peu de marge quelque part. Ce que je suggèrerai c’est d’exploiter le
Parent.TemplateHeight
de la galerie pour rendre tout ça un peu plus dynamique (et puisParent.TemplateHeight - 80
pour l’histoire de la marge et arriver à 900).Tu me suis ?
Pour la couleur, soit t’as une donnée qui te permet de les différencier, soit faut que tu rajoutes une colonne dans ta datasource avec un index et tu te sers de cet index pour choisir la couleur. Dans les 2 cas, tu utilises un petit Switch() pour afficher la bonne couleur.
Pour l’ajout d’une colonne avec un index tu peux suivre cette méthode :
CommentID=dlkfJgd44LtchAP, PostID=mTCg7t7DUyKPy5Q
Vraiment merci 😍
Je le redis, mais cette communauté francophone est une perle…
En supprimant la barrière de la langue, l’avancement est beaucoup plus rapide et efficace !
CommentID=0fYpkOFRD6Qe3Tv, PostID=mTCg7t7DUyKPy5Q
Connectez-vous pour répondre.