
Scan multiples
Scan multiples
Posté par lionel sur 8 décembre 2023 à 9h02Bonjour je souhaiterai réaliser un scan multiple de codes barres, et envoyer la liste des codes scannés dans une gallery, via une collection.
j’ai créé un BarcodeReader1 avec option “Scan multiple” et OnScan : Collect(MaColec;{ Numero : First(BarcodeReader2.Barcodes).Value}).
Quand je termine la session de scan, ma gallery se rempli avec uniquement le premier code scanné.
Comment les envoyer tous ? Je vois que c’est First qui pose soucis car l demande bien d’envoyer le premier, j’ai tenté ForAll mais j’ai l’erreur “source de données non valide”
Merci pour votre aide
MUD a répondu Il y a 1 année, 3 mois 3 Membres · 12 Réponses- 12 Réponses
Hello,
Le scanner contient l’ensemble de tes codes barres dans la propriété Barcodes. Donc en faisant un First, tu vas récupérer toujours uniquement le premier.
Tu pourrais utiliser directement la propriété Barcodes et la collecter entière avec dans le OnScan, clearCollect(MESCODES, BarcodeReader2.Barcodes) ou même en rajoutant un ShowColumns pour récupérer uniquement la valeur.
Tu pourrais également boucler sur ta propriété avec un forall(BarcodeReader2.Barcodes,….) en faisant bien attention au type de donnée que te retourne les Barcodes, encore une fois avec un ShowColumns pour récupérer uniquement la valeur.
En espérant t’avoir éclairé 😁
-
Cette réponse a été modifiée Il y a 1 année, 3 mois par
Quentin.
-
Cette réponse a été modifiée Il y a 1 année, 3 mois par
Merci !
J’ai utilisé clearCollect(MESCODES, BarcodeReader2.Barcodes) ça fait le job que je voulais 😀
Désolé, je suis plutôt débutant, mais l’option dont tu me parles “ShowColumns” m’intéresse, pourrais-tu m’en dire plus stp ?
J’ai trouvé, en utilisant :
Collect(colAllCodes; ShowColumns(AddColumns(ForAll(BarcodeReader2.Barcodes;{Value:ThisRecord.Value}); “ID_BARCODE”; ThisRecord.Value); “ID_BARCODE”));;
Maintenant que j’ai ma liste de code barres scanné dans la gallery, je cherche le moyen de mettre à jour une liste Sharepoint contenant 2 champs (Id_codebare, status).
Je voudrais que tous les codes barres présents dans la gallery, changent de status dans la liste Sharepoint (de “libre” à “réservé” par exemple).
Je n’ai aucune piste, alors merci beaucoup de votre aide !
Salut Lionel,
Pour bien comprendre, ta liste SharePoint contient déjà la valeur des codes barres présents dans la gallery c’est bien ça?
Si oui, tu peux mettre une valeur par défaut dans ta colonne “statut” (‘libre’ par exemple), et ensuite tu peux essayer d’ajouter un bouton, ou autre selon ta préférence, dans ton appli et taper une condition sur la propriété “OnSelect”:Forall(
colAllCodes;
If(lookup([lenomdetalistesharepoint];ld_codebare=value;true); patch([lenomdetalistesharepoint];ld_codebare=value;
{statut:”réservé”}
))).
C’est une solution (peut-être pas la meilleure) qui devrait fonctionner je pense 😊
Dis moi si ça a pu t’aider.
Pardon, petite modification 😅
Pour le ForAll essaye plutôt:
Forall(
colAllCodes;
UpdateIf([lenomdetalistesharepoint];ld_codebare=value && statut=”libre”;
{statut:”réservé”}
)).
Ce bout de code aura l’avantage de n’appliquer la modification de ta colonne statut que si elle a la valeur “libre”, ce qui est plus efficace que le code proposé hier.
Bon weekend!
J’ai utilisé ce code sur un bouton :
ForAll(
colAllCodes;
UpdateIf([@’Inventaire cartons’];Title=value;
{statut:”Réservé”}))
J’ai une erreur qui indique : UpdateIf contient des arguments non valide, je ne vois pas où est l’erreur (j’ai utilisé le vrais noms des colonnes)
Et j’ai “value” aussi qui n’est pas reconnu
Bonjour,
Je t’ai indiqué “value” parce que par défaut c’est le nom de la colonne créée dans une collection, mais ça doit vouloir dire qu’elle porte un autre nom.
Ouvre ta collection (dans le bandeau de gauche, l’icone (x)) et note le nom de ta colonne contenant les valeurs de codes barres. Utilise ce nom à la place de “value” dans le code que tu as placé dans le onSelect.
Youpi, ça a marché avec ces infos.
Un problème que je n’avais pas vu c’est le format du “statut” qui, dans ma liste Sharepoint est une dropDownList (Type Choix). Il y a deux choix : Réservé, Disponible.
Mais quand je marque :
{ statut = “Réservé” }
Cela m’indique que je n’utilise pas le bon Type.
Donc comment faire pour changer la valeur d’un Type choix ?
J’ai trouvé une astuce. J’ai ajouté dans l’écran un DataCardValue avec comme en source de données le champ Statut de la liste Sharepoint.
et voici le code du bouton :
ForAll(
colAllCodes;
Patch( ‘Inventaire cartons’; First( Filter( ‘Inventaire cartons’; Title = ID_BARCODE ) );{ Status: DataCardValueStatus.Selected } )
)Je commence à comprendre le fonctionnement global de Power Apps, c’est juste dommage que Microsoft ne mette pas à jour sa doc en ligne. Merci pour l’aie en tout cas !
Génial!
Tu vas vite monter en compétences, et au-delà de la doc Microsoft, tu trouveras beaucoup de réponses sur internet sur les forums comme celui-là ou des posts type powerusers.microsoft.com, n’hésite pas à scruter, ça m’a beaucoup dépanné.
À bientôt!
Connectez-vous pour répondre.