Mise à jour données

Étiquetté : , ,

  • Mise à jour données

    Posté par Alain Pujol sur 7 février 2022 à 15h04

    Il y a des jours ou rien ne vas….

    J’ai une table dans un fichier Excel telle que:

    Les lignes sont enregistrées au fur et à mesure de leur saisie pour chaque IDDEV

    Lorsque j’ai terminé en fonction du TYPE et du total (tarif * Quant) je peux définir un coef .

    Je veux donc renseigner chaque ligne correspondante avec la valeur de Coef puis calculer le Total = Quant x Tarif x Coef

    Exemple si pour IDDEV = 8 et coef pour FO = 1,2 je veux mettre à jour

    ligne 6 coef = 1,2 et Total = 1 x 100 x 1,2 = 120

    ligne 12 coef = 1,2 et Total = 20 x 1,5 x 1,2 = 36

    C’est le TOTAL que je n’arrive pas à mettre jour .

    Je vous remercie par avance pour votre aide

    PostID=L7zl88l0GW9cuxO

    Alain Pujol a répondu Il y a 7 mois, 4 semaines 1 Membre · 7 Réponses
  • 7 Réponses
  • R3dKap

    Membre
    8 février 2022 à 21h22

    Salut @Alain,

    Tu peux nous mettre une capture du Patch() que tu fais pour alimenter ta colonne TOTAL ?

    CommentID=eya1Q0q24FAtNZM, PostID=L7zl88l0GW9cuxO

  • Alain Pujol

    Membre
    9 février 2022 à 12h21

    Bonjour Emmanuel,

    C’est justement mon problème. Comment alimenter la colonne Total.

    il faut lire chaque ligne et vérifier si le IDDEV = MonNum et TYPE = “FO” et donc renseigner COEF puis calculer le TOTAL.

    CommentID=p7t5B9i9fkI2f86, PostID=L7zl88l0GW9cuxO

  • Alain Pujol

    Membre
    9 février 2022 à 12h34

    J’ai fait le test ci dessous

    colListeAticle : contient la liste des articles pour un IDDEV choisi par exemple 8.

    Le code ci dessous met à jour la ligne IDART = 5 – cette ligne n’est pas présente dans colListeArticle

    IDART = ThiesRecord.IDART ne marche pas – sans doute une erreur de compréhension de ma part de FOR ALL

    ForAll(n    colListeArticles;n    Patch(n        ListeArticleDevis;n        First(n            Filter(n                ListeArticleDevis;n                IDART = ThisRecord.IDART &&n                TYPE = "FO"n            )n        );n        {n            Coef: 1,8;n            Total: 10n        }n    )n);;

    CommentID=gXEfClvSMg3FzTJ, PostID=L7zl88l0GW9cuxO

  • Didier Gbenou

    Membre
    12 février 2022 à 21h16

    Salut @Alain ,

    Peux-tu nous donner un peu plus de détails sur ton application?

    Des captures d’écran pour expliquer comment tes utilisateurs entrent les valeurs de tes colonnes et aussi à quel endroit tu as le ForAll().

    Ça nous permettra de mieux nous immerser dans ton application et mieux comprendre comment t’aider.

    J’ai l’impression que tu as déjà la formule qu’il faut mais tu sais pas comment l’appliquer dans PowerApps.

    Merci!

    CommentID=BeZZFx2OvN4RIPO, PostID=L7zl88l0GW9cuxO

  • Alain Pujol

    Membre
    14 février 2022 à 8h02

    Bonjour,

    Merci pour votre aide.

    J’ai trouvé la solution qui fonctionne, j’ai transformé la formule comme ci dessous.

    De façon générale, j’avais cru comprendre que dans ForAll, thisRecord s’adressait à colListeArticles, mais il semble que non?

    ForAll(n    colListeArticles;n    UpdateIf(n        ListeArticleDevis;n                IDART = colListeArticles[@IDART] &&n                TYPE = "FO"n            )n        );n        {n            Coef: 1,8;n            Total: 10n        }n    )n);;

    CommentID=jIK5JDQfuuCybAU, PostID=L7zl88l0GW9cuxO

  • R3dKap

    Membre
    14 février 2022 à 15h09

    @Alain tu as raison : le ThisRecord n’est pas le même suivant l’endroit où tu te trouves. En fait chaque fonction de boucle ou de traitement d’une source de données peut avoir son propre ThisRecord.

    Ca veut dire que dans la capture ci-dessous, là où il y a la flèche rouge le ThisRecord c’est celui de colListeArticles, mais là où il y a la flèche bleue c’est le ThisRecord de ListeArticleDevis :

    Pour éviter cela il y a une solution encore plus simple que celle que tu utilises dans ton code ci-dessus : c’est d’utiliser le mot-clé As.

    Voici par exemple ton ForAll() réécrit avec le As pour nommer la source de données du ForAll() :

    ForAll(n    colListeArticles As itemListeArticles;n    UpdateIf(n        ListeArticleDevis;n                IDART = itemListeArticles.IDART &&n                TYPE = "FO"n            )n        );n        {n            Coef: 1,8;n            Total: 10n        }n    )n);;

    Euh, par contre je crois qu’il y a un soucis avec les parenthèses dans ta formule… Ou alors il manque un bout de code… A vérifier…

    CommentID=znuhwo9Rf2SZ2qO, PostID=L7zl88l0GW9cuxO

  • Alain Pujol

    Membre
    15 février 2022 à 13h39

    Bonjour,

    Merci pour ces précisions.

    OK pour les parenthèses…

    Tests OK avec ta proposition.

    CommentID=vgbAE4t7INgnfMq, PostID=L7zl88l0GW9cuxO

Connectez-vous pour répondre.