Scan multiples

  • Scan multiples

    Posté par lionel sur 8 décembre 2023 à 9h02

    Bonjour 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 9 mois, 1 semaine 3 Membres · 12 Réponses
  • 12 Réponses
  • Quentin

    Membre
    8 décembre 2023 à 9h19

    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 9 mois, 2 semaines par  Quentin.
  • lionel

    Membre
    8 décembre 2023 à 9h40

    Merci !

    J’ai utilisé clearCollect(MESCODES, BarcodeReader2.Barcodes) ça fait le job que je voulais 😀

  • lionel

    Membre
    8 décembre 2023 à 10h34

    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 ?

  • lionel

    Membre
    8 décembre 2023 à 10h57

    J’ai trouvé, en utilisant :

    Collect(colAllCodes; ShowColumns(AddColumns(ForAll(BarcodeReader2.Barcodes;{Value:ThisRecord.Value}); “ID_BARCODE”; ThisRecord.Value); “ID_BARCODE”));;

  • lionel

    Membre
    8 décembre 2023 à 11h21

    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 !

    • MUD

      Membre
      8 décembre 2023 à 16h33

      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.

    • MUD

      Membre
      9 décembre 2023 à 14h07

      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!

      • lionel

        Membre
        11 décembre 2023 à 14h35

        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

        • Cette réponse a été modifiée Il y a 9 mois, 1 semaine par  lionel.
        • Cette réponse a été modifiée Il y a 9 mois, 1 semaine par  lionel.
  • MUD

    Membre
    11 décembre 2023 à 15h38

    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.

  • lionel

    Membre
    11 décembre 2023 à 15h55

    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 ?

  • lionel

    Membre
    12 décembre 2023 à 9h22

    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 !

  • MUD

    Membre
    12 décembre 2023 à 10h12

    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.