OnSelect sur barre du graphique

Étiquetté : ,

  • OnSelect sur barre du graphique

    Posté par Thomas sur 18 décembre 2022 à 8h58

    Bonjour 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 Il y a 11 mois, 3 semaines 1 Membre · 8 Réponses
  • 8 Réponses
  • R3dKap

    Membre
    18 décembre 2022 à 12h50

    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

  • Thomas

    Membre
    18 décembre 2022 à 15h37

    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

  • Thomas

    Membre
    18 décembre 2022 à 16h46

    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

  • DavidZed

    Membre
    18 décembre 2022 à 18h00

    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

  • Thomas

    Membre
    18 décembre 2022 à 18h11

    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

  • DavidZed

    Membre
    18 décembre 2022 à 19h39

    ç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

  • R3dKap

    Membre
    18 décembre 2022 à 21h32

    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 puis Parent.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

  • Thomas

    Membre
    19 décembre 2022 à 9h23

    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.