
Items triés avec fond coloré dans Galerie.
Tagged: powerapps
Items triés avec fond coloré dans Galerie.
Posté par Mickael sur 18 juin 2023 at 19h24Bonjour,
Je cherche a avoir un genre de tri dans une galerie avec un système de couleur.
Je souhaiterais que tous les items affichés dans ma galerie ayant le même titre aient un fond de même couleur. J’ai pas mal cherché sur les forums et j’ai bien peur que ce ne soit pas possible
Petite précision, je ne maîtrise pas le contenu de ce titre, ce qui m’empêche de passer par une fonction Match.
Merci d’avance.
PostID=GT9vwXdtq3VgIev
Mickael a répondu 1 year, 4 months ago 1 Membre · 6 Réponses- 6 Réponses
Salut Mickael,
As-tu essayé de mettre une formule de ce type dans la propriété TemplateFill de ta galerie :
If(ThisItem.Titre="toto"; RGBA(255;0;0;1); RGBA(0;0;0;0))
CommentID=Qxsx2lu90ogRdd4, PostID=GT9vwXdtq3VgIev
Le problème est que je ne maîtrise pas les titres.
Pour expliquer le contexte, la galerie a 2 filtres (Item créé par l’user connecté et sur un statut.
J’ai un cbx qui est également filtré sur ces 2 conditions.
Lorsque ce cbx est vide, la galerie affiche tous les items concernés par les 2 filtres et lorsque le cbx est renseigné, alors la galerie n’affiche que les items répondant aux 2 filtres + le titre renseigné dans le cbx.
Le but est donc de pouvoir différencier les items (avc de la couleur) pour les items ayant le même titre, et avoir un visuel avant la sélection dans le cbx.
Ce titre est generé par l’utilisateur qui crée l’item via un formulaire.
Mais je doute que ce faisable.
Merci tout de même d’avoir répondu Emmanuel.
SubCommentID=lWN22tPodkMH4AN, CommentID=Qxsx2lu90ogRdd4, PostID=GT9vwXdtq3VgIev
Ok, j’ai pigé… Alors si, c’est faisable : tu dois construire une collection qui liste tous les titres de ta galerie de manière unique et en face de chaque titre tu mets une couleur (que tu pioches par exemple dans une liste de couleurs que tu auras définie préalablement). Puis sur ta galerie tu définis la propriété TemplateFill en te basant sur cette collection.
Voilà comment faire :
En gros :
tu te prépares une collection avec les couleurs disponibles (là évidemment il en faudra une quantité suffisante pour être sûr d’avoir une couleur pour chaque titre -> ça dépend du nombre max de titres différents que tu pourras avoir dans la galerie -> sinon faut générer des couleurs aléatoire mais là je sais pas trop comment obtenir un résultat potable, y’a p’têt des algos sur le net)
colData ce sont les données de ta galerie (je l’ai créé juste pour l’exemple)
colTitles c’est une collection avec tous les titres de ta galerie qui sont uniques (dans le Distinct() remplace Value par ta colonne de titre)
Et après, dans ta galerie, sur la propriété TemplateFill :
LookUp(colTitles; Value=ThisItem.Title).Color
A toi de remplacer Value par la colonne qui portera les titres dans ta collection colTitles…
Et voilou… 😉
SubCommentID=j0p7j9lPaLEvnDx, CommentID=Qxsx2lu90ogRdd4, PostID=GT9vwXdtq3VgIev
Merci pour ta réponse.
Pour commencer, dans la formule qui consiste à créer la collection colData, si j’ai bien compris, il faudrait que j’entre chaque titre (ClearCollect(colData,”Titre 1″, “Titre 2”, “Titre 1”, …) sauf que je ne connais pas les titres à l’avance.
J’ai donc fait cela :
ClearCollect(colData,Gallery.AllItems) je ne sais pas si j’ai bien fait.
A la différence, dans ma collection colTitles, la colonne en question est bien “Valeur” donc j’ai laissé ta formule telle quelle dans le TemplateFill de la galerie.
Sinon tout à l’air de coller, pas d’erreur dans les formules, par contre, rien ne se passe.
EDIT : No troubles, c’est moi qui ai fais une erreur dans la formule TemplateFill :
LookUp(colTitles, Value = ThisItem.Title).Color
au lieu de :
LookUp(colTitles, Value = ThisItem.Titre).Color
Merci beaucoup Emmanuel, avec toi c’est toujours solutions clé en main 👍
CommentID=deKJuwI5GHhQK7n, PostID=GT9vwXdtq3VgIev
Oui oui tu as bien fait, c’est bien ça qu’il fallait faire : moi j’ai créé une collection colData pour simuler ta galerie avec tes titres… Après, dans ta colData à toi tu peux limiter les colonnes à juste la colonne Titre de la manière suivante :
ClearCollect(colData, ShowColumns(Gallery.AllItems,"Titre"))
Et puis finalement, la collection colData tu peux t’en passer en écrivant directement :
ClearCollect(colTitles, AddColumns(Distinct(ShowColumns(Gallery.AllItems,"Titre"), Titre), "Color", Color.Transparent)
😉
CommentID=vaHQNB1uMqjyFha, PostID=GT9vwXdtq3VgIev
Top! Merci.
CommentID=lMnxah0vDToqlhd, PostID=GT9vwXdtq3VgIev
Connectez-vous pour répondre.