

R3dKap
Expert Power AppsRéponses céées sur le Forum
Eh oui… Un form = une source de données…
Bien vu !
R3dKap
Membre18 février 2025 à 18h38 en réponse à: Compresser une image en l’important avec une appli CanvasAh pas mal @jer8m3… 👍
R3dKap
Membre18 février 2025 à 12h44 en réponse à: Compresser une image en l’important avec une appli CanvasSalut @Laurent,
Il n’existe pas de technique native pour compresser une image dans Power Apps. Il te faudra passer par un flux Power Automate et utiliser un connecteur payant.
Toujours tenté ? 😅
Ok. Du coup faut essayer de voir pourquoi le lien Ajouter un champ est grisé. C’est pas normal.
Question : ton application c’est une personnalisation du formulaire natif SharePoint via Power Apps ou c’est une application Power Apps que tu as créé à part ?
Est-ce que tu peux créer un nouvel écran dans ton application, y mettre un formulaire et le brancher sur ta liste SP et voir si le champ PJ est dispo ?
C’est pas la pein d’essayer de créer une datacard custom pour gérer les pièces jointes, ça va être l’enfer : les datacards custom n’ont pas de propriété Update qui est celle qui permet d’enregistrer les données dans la source de données au moment du SubmitForm(). Il faudrait tout gérer à la main et comme il s’agit de PJ il faudrait soit faire appel à la fonction d’appel HTTP du connecteur GroupesOffice365 pour les charger sans passer par un flux, ou alors passer par un flux.
Bref, il faut vraiment plutôt se concentrer sur l’utilisateur de la datacard native et essayer de comprendre pourquoi tu ne peux pas ajouter le champ des PJ à ton formulaire.
Avec plaisir…
Y’aurait aussi moyen de le faire en une seule boucle mais je trouvais ça plus clair de procéder en 2 temps… 😉
Avec plaisir m’sieur @Nicolas 😋
Salut @Patrice,
Je pense qu’il faut revenir à ton problème d’origine : ce n’est pas normal que tu n’arrives pas à ajouter le champ des pièces jointes dans ton formulaire. C’est totalement natif et normalement ça fonctionne nickel.
Est-ce que tu peux nous décrire, captures à l’appui, ce qui se passe lorsque tu ajoutes ce champ des PJ dans ton formulaire ?
Passke le refaire en custom c’est un peu plus compliqué que ça… 😉
Voilou…
<div>
ClearCollect(
colMouvements;
{IdMouvement: 1; Reference: 29834; Batch: "AB435"; StartingLocation: Blank(); QuantityMoved: 0; ArrivalLocation: "R01-02-05"; Quantity: 10};
{IdMouvement: 2; Reference: 29834; Batch: "AB435"; StartingLocation: "R01-02-05"; QuantityMoved: -5; ArrivalLocation: "A01-01-04"; Quantity: 5};
{IdMouvement: 3; Reference: 29834; Batch: "AB435"; StartingLocation: "A01-01-04"; QuantityMoved: -3; ArrivalLocation: Blank(); Quantity: 0};
{IdMouvement: 4; Reference: 325678; Batch: "AB954"; StartingLocation: Blank(); QuantityMoved: 0; ArrivalLocation: "R02-02-05"; Quantity: 35};
{IdMouvement: 5; Reference: 325678; Batch: "AB456"; StartingLocation: Blank(); QuantityMoved: 0; ArrivalLocation: "R02-02-05"; Quantity: 35};
{IdMouvement: 6; Reference: 325678; Batch: "AB954"; StartingLocation: "R02-02-05"; QuantityMoved: -15; ArrivalLocation: "A02-01-03"; Quantity: 15};
{IdMouvement: 7; Reference: 325678; Batch: "AB954"; StartingLocation: "A02-01-03"; QuantityMoved: -10; ArrivalLocation: Blank(); Quantity: 0}
);;
Clear(colExpandedData);;
// On constitute une collection avec les mêmes lignes sauf que l'on éclate en 2 lignes celles où il y a à la fois un StartingLocation ET un ArrivalLocation
ForAll(
colMouvements As loopMouvement;
If(!IsBlank(loopMouvement.StartingLocation);
Collect(
colExpandedData;
{
Reference: loopMouvement.Reference;
Batch: loopMouvement.Batch;
Location: loopMouvement.StartingLocation;
Quantity: loopMouvement.QuantityMoved
}
)
);;
If(!IsBlank(loopMouvement.ArrivalLocation);
Collect(
colExpandedData;
{
Reference: loopMouvement.Reference;
Batch: loopMouvement.Batch;
Location: loopMouvement.ArrivalLocation;
Quantity: loopMouvement.Quantity
}
)
)
);;
// Ensuite on regroupe les données par triplets Reference/Batch/Location (les quantités sont reléguées dans une colonne Quantities), puis on ajoute une colonne Quantity où on fait la somme de chaque Quantities de chaque ligne, et enfin on enlève la colonne Quantities dont on a plus besoin
ClearCollect(
colVue;
DropColumns(
AddColumns(
GroupBy(
colExpandedData;
Reference;
Batch;
Location;
Quantities
);
Quantity;
Sum(Quantities;Quantity)
);
Quantities
)
)Résultat :
</div>
-
Cette réponse a été modifiée Il y a 1 jour, 1 heure par
R3dKap. Raison: Ajout capture résultat
-
Cette réponse a été modifiée Il y a 1 jour, 1 heure par
Je te prépare ça @Romain 😉 (dès que je trouve le temps de reproduire ton cas)
Ah bin là c’est plus simple : tu veux juste afficher le contenu de ta table Mouvements finalement…
Donc tu peux par exemple utiliser un contrôle Table sur ton écran et renseigner le nom de ta table dans sa propriété Items et tu devrais voir les données s’afficher.
Et pour le tri, dans la propriété Items de la table tu peux le spécifier ainsi :
SortByColumns(
TableMouvements;
"Référence";
SortOrder.Ascending;
"Batch";
SortOrder.Ascending;
"Location";
SortOrder.Ascending
)Ok, alors dans ton application tu crées un premier écran Références avec une galerie galRéférences dont la propriété Items est le nom de ta table des références.
Tu crées ensuite un autre écran Mouvements dans lequel tu mets également une galerie galMouvements.
Dans le OnSelect de la galerie galRéférences tu mets le code :
Navigate(Mouvements; ScreenTransition.None; {locRéférence: ThisItem})
. Au clic sur une référence ce code va t’amener sur l’écran Mouvements et mettre à disposition dans cet écran une variable locale locRéférence qui va contenir la référence cliquée.Dans le Items de la galerie galMouvements, tu mets le code suivant :
Filter(TableMouvements; Référence.Référence = locRéférence.Référence)
. DansRéférence.Référence
le 1er est le nom de ta colonne de recherche Référence qui pointe vers ta table des références, et le 2è est le nom de la colonne identifiante de ta table des références (c’est une colonne de type Identificateur unique qui porte le même nom que le nom de ta table). DanslocRéférence.Référence
, le Référence après le point est le même que le 2è Référence que dansRéférence.Référence
.Sur l’écran Mouvements, prévoit un petit bouton avec le code Back() dans sa propriété OnSelect pour pouvoir revenir à l’écran Références.
Voilou… 😉
R3dKap
Membre14 février 2025 à 11h23 en réponse à: Créer un formulaire PDF selon un nombre saisi dans une colonne d’une listeSalut Christian,
Ton flux pourrait ressembler à ceci :
- Action Obtenir le contenu du fichier du connecteur SharePoint pour récupérer le contenu du fichier PDF modèle
- Action Obtenir l’élément du connecteur SharePoint pour récupérer la ligne de la liste qui contient la valeur de la colonne 4
- Action Initialiser la variable du connecteur Variable pour créer une variable varIndex de type Flottant et lui donner la valeur de la colonne 4 de ta liste SharePoint
- Action Exécuter jusqu’à en lui spécifiant comme condition d’arrêt varIndex égal à 0 puis à l’intérieur de la boucle faire ceci :
- Action Créer un fichier du connecteur SharePoint en lui mettant un nom dans lequel tu mettras la propriété Current item de la boucle Appliquer à chacun
- Action Décrémenter une variable avec la variable varIndex et la valeur 1
Et le tour est joué… 🙂
Salut @Romain,
- Est-ce que c’est bien une application de canevas que tu veux créer ?
- Est-ce que tu veux stocker tes données dans SharePoint ou dans Dataverse ?
- Est-ce que tu as une table qui liste toutes tes références ?
R3dKap
Membre13 février 2025 à 14h12 en réponse à: ACCES REFUSE SUR UNE ETAPE ‘UN FLUX POWER AUTOMATESalut @faddi,
As-tu les droits d’accès sur le site SharePoint concerné ? En es-tu visiteur, membre, ou propriétaire ?
Il se peut aussi que tu manques de droits pour consulter le contenu du groupe en question.
R3dKap
Membre11 février 2025 à 12h01 en réponse à: Question sur la gestion des pièces jointes dans une liste SharePointOk, alors faut déjà régler ce pb…
Dans ton flux qu’est ce que te renvoies l’exécution de l’action Démarrer et attendre une approbation, qu’y a-t-il comme valeur dans approverResponse chez toi ?
Est-ce que tu as bien mis cette valeur dans la condition ?