
Problème sur la fonction SortByColumns() pour une colonne LookUp
Problème sur la fonction SortByColumns() pour une colonne LookUp
Posté par RANDRIATAHINA Charles sur 4 novembre 2022 à 16h51Bonjour,
Pour un business case, j’ai besoin de mettre en place des filtres sur la home page de mon application. Le problème c’est que je n’arrive pas à faire fonctionner la fonction SortByColumns() avec ma colonne LookUp. Il semble que cette fonction ne serait pas compatible avec le champ de type Recherche.
Quelqu’un aurait une alternative ?
Merci d’avance.
PostID=in101jVUu6i4VvT
DavidZed a répondu Il y a 1 année, 2 mois 1 Membre · 7 Réponses- 7 Réponses
Salut RANDRIATAHINA Charles,
Effectivement ce n’est pas possible directement. La colonne de Lookup étant une colonne complexe (avec une structure de type
{Id: <...>; Value: <...>}
), elle ne peut pas être utilisée directement dans la fonction SortByColumns().Pour contourner ça, il faut rajouter à ta source de données une colonne qui va contenir uniquement la valeur de ta colonne de Lookup :
SortByColumns(n AddColumns(n colMaCollection;n "ValeurLookup";n ColonneLookup.Valuen );n "ValeurLookup";n SortOrder.Ascendingn)
Ceci étant dit, tant que tu travailleras avec des collections tu n’auras pas de problème de délégation. Mais si tu fais la même chose sur une source de données en direct (liste SharePoint ou table Dataverse) tu vas être confronté au problème classique de délégation qui fait que ta fonction AddColumns() ne fonctionnera que sur les 2 000 premiers éléments de ta source de données. Donc il faut impérativement se débrouiller pour récupérer moins de 2 000 éléments avant de faire cette opération de tri.
Est-ce que cela répond à ton problème ?
CommentID=xhXP8r1VYLOBLHa, PostID=in101jVUu6i4VvT
Hello R3dKap ,
Je te remercie pour ton feedback et les explications. Cela devrait resoudre mon problème de tri sur la colonne Lookup. Est-ce qu’il y a une même limitation sur d’autres colonnes complexes ( de type choix par exemple) ? Et pour pouvoir utiliser la fonction AddColumns, est-ce que je dois toujours utiliser la collection comme source de données dans ma gallerie ?
Merci
SubCommentID=N8sBDhU1WAXkMaU, CommentID=xhXP8r1VYLOBLHa, PostID=in101jVUu6i4VvT
Si ton tri ne doit être fait que sur une seule colonne, tu peux utiliser
Sort(Source;ColonneLookup.Value,[Order])
Par contre si tu dois trier selon plusieurs critères, dont des Lookup, choices etc, le AddColumns est obligatoire
CommentID=kRKMTlMfDQx8Jak, PostID=in101jVUu6i4VvT
Hello DavidZed ,
Merci beaucoup pour ta réponse.
En effet, je dois faire le tri sur plusieurs colonnes dont 2 colonnes de type lookup.SubCommentID=p2bXBoEjMcAJl3i, CommentID=kRKMTlMfDQx8Jak, PostID=in101jVUu6i4VvT
Tiens… DavidZed : et t’as pas de pb de délégation sous ce format là lorsque tu attaques directement la source de données (SharePoint ou autre) ?
CommentID=gOAru63Tlxyiwkh, PostID=in101jVUu6i4VvT
Le addColumn n’est pas délégable. En vérifiant pour le sort, j’ai été surpris des particularités ( cas de sharepoint par exemple : https://learn.microsoft.com/fr-fr/connectors/sharepointonline/#power-apps-delegable-functions-and-operations-for-sharepoint )
SubCommentID=HFk3tfcJH6RMwpO, CommentID=gOAru63Tlxyiwkh, PostID=in101jVUu6i4VvT
Connectez-vous pour répondre.