Répondre à: opération interdite – dépasse le seuil d'affichage de liste

  • R3dKap

    Membre
    7 janvier 2022 à 12h04

    Salut @David,

    Ton champ de recherche pointe bien vers ta liste Point_collecte : regarde la partie “Obtenir des informations à partir de“. 😉

    Par rapport à ta problématique de l’erreur sur ton champ Code Producteur, la vraie question maintenant est la suivante : combien y a-t-il d’éléments dans ta liste Point_collecte ?

    Mais je devine déjà la réponse (car j’ai fait le test chez moi et je confirme car j’ai réussi à reproduire ton erreur) : tu as plus de 5 000 points de collecte. Du coup, impossible d’utiliser la fonction Choices() qui est positionnée par défaut sur le Items de ta combo box du datacard du Code Producteur. En effet, la fonction Choices() est censée renvoyer la totalité des éléments mais ils sont trop nombreux et dépassent la limite SharePoint de 5 000 éléments dans le résultat de la requête.

    Il va donc falloir procéder autrement. Dans le Items de ta combo box du Code Producteur, on va attaquer directement la liste Point_collecte. Il faudra également modifier la propriété Update du datacard pour que la donnée à stocker soit bien au format {Id: <id>, Value: <valeur>} nécessaire à son enregistrement dans le champ de recherche Code Producteur.
    Le truc c’est qu’on ne pourra pas utiliser le moteur de recherche de la combo box (donc assure-toi bien que IsSearchable est à false) car sinon la recherche ne se fera que sur les 2 000 premiers points de collecte (limitation Power Apps). Il va donc falloir forcer l’utilisateur à faire une saisie EN DEHORS de la combo box pour rechercher par nous-même et réduire le nombre d’éléments ramenés dans la combo box.

    Bref, il te faut donc augmenter la taille de ta datacard pour y insérer une zone de texte (txtSearchProducteur) au-dessus de ta combo box comme ceci :

    Ensuite, voici le code à mettre dans le Items de ta combo box (testé de mon côté) :

    ShowColumns(n    Filter(n        Point_collecte;n        StartsWith(n            Title;n            txtSearchProducteur.Textn        )n    );n    "ID";n    "Title";n    "Nom Producteur"n)

    En gros ce que l’on fait c’est :

    • rechercher tous les points de collecte qui commence par la saisie de l’utilisateur dans la zone de texte txtSearchProducteur

    • on réduit le résultat aux seules colonnes SharePoint ID et Title et Nom Producteur (voir ma suggestion plus bas pour comprendre pourquoi ramener cette colonne) pour limiter la charge en mémoire

    Enfin, sur la propriété Update du datacard, met ceci (je suppose que ta combo box de choix du code producteur est DataCardValue22) :

    {n    Id: DataCardValue22.Selected.ID;n    Value: DataCardValue22.Selected.Titlen}

    Suggestion : pour améliorer l’expérience utilisateur dans le choix du producteur (alias le point de collecte), ça serait sympa de lui afficher en dessous de chaque code dans la combo box le nom du producteur (alias le nom du point de collecte). Voici comment procéder pour faire ça (testé chez moi également)…

    1. Sur l’onglet Properties de ta combo box, clique sur Edit puis change le layout de “Single” à “Double” :

    2. Ensuite, pour le Secondary field tu choisis ton champ Nom Producteur

    Et ça te donnera quelque chose comme ceci :

    Note : tu parles de “liste Teams“… en réalité, utiliser l’applications Lists dans Teams revient à avoir simplement une interface aux couleurs de Teams pour gérer des Microsoft Lists. Or, une liste Microsoft List n’est rien d’autre derrière qu’une liste SharePoint… 😉

    Pour résumer : Liste Teams = Microsoft List = liste SharePoint

    En effet, derrière la création de ton Teams il y a automatiquement création d’un site SharePoint où, comme tu l’as vu, tu retrouveras les listes SharePoint créées à partir de Teams.

    C’était juste histoire de bien préciser les choses. Beaucoup encore pensent que ce sont des choses séparées. Mais au final tout s’appuie sur SharePoint.

    CommentID=45iih3qhVRopz95, PostID=hGIqUSD1Wol8L6J