DavidZed
MembreRéponses céées sur le Forum
-
Ah et pour le téléchargement, l’idéal est de créer un flux power automate, oui 🙂
CommentID=znirFzGqnsiqo3r, PostID=jPFJE7Sb6wXLXnk
-
Hello,
Il est de plus en plus difficile d’empêcher l’accès direct aux listes si on a octroyé les droits de modification via le connecteur Sharepoint dans Power Apps.
Il y a plusieurs solutions :
-
Dans la liste, modifier la vue par défaut pour n’afficher aucune ligne, ni aucune colonne et empêcher la création de liste
-
Il est possible de masquer une liste à l’aide de commandes PowerShell
Seulement, certains ont trouvé une astuce : passer par l’appli MS List, qui sur sa page d’accueil, affiche toutes les listes auquel l’utilisateur a accès… :-/
CommentID=hFjXWRtWMeEYvoB, PostID=jPFJE7Sb6wXLXnk
-
-
DavidZed
Membre27 février 2023 à 19h38 en réponse à: Dataverse relation table et formulaires power appsBonjour Patrice ,
Dans ce genre de situation, je m’aide généralement de variables de contexte qui s’y prêtent particulièrement bien car on peut les intégrer dans la fonction Navigate()
Admettons que ton app soit répartie en 3 écrans :
-
Un écran “Sc_NDF” avec une galerie ‘GalerieNDF’ affichant les notes de frais :
-
Un écran mixte “Sc_NDF_Details” (celui dont tu as mis le screenshot) avec le formulaire de note de frais ‘FormNDF’ et une galerie avec les dépenses de la note de frais ‘GalerieDépenses’
-
et enfin, un écran “Sc_NDF_Dépense” avec le formulaire de dépense ‘FormDépenses’
L’écran Sc_NDF :
-
un bouton “+” pour naviguer vers l’écran Sc_NDF_Details en mode new :
NewForm(FormNDF);;Navigate(Sc_NDF_Details; Fade)
-
Dans la galerieNDF, un bouton “>” pour éditer l’item actuel, en le passant en tant que variable :
EditForm(FormNDF);;Navigate(Sc_NDF_Details; Fade;{vctxNDF:ThisItem})
L’écran Sc_NDF_Details :
-
Dans le formulaire FormNDF, on utilise la variable dans le paramètre “.item” :
vctxNDF
-
Dans la GalerieDépense, pour la source de données, on filtre les dépenses pour ne faire apparaître que celles qui sont associées à la NDF dans notre variable :
Filter('NDF Détails', NDFItem.NDF = vctxNDF.NDF)
(Où .NDF est le GUID de ta table NDF, le nom de ce champ est attribué automatiquement à la création de la table et a le nom de celle-ci, dans sa forme au singulier)
Toujours dans la galerie, on ajoute un bouton “>” pour naviguer vers le dernier écran, en passant la dépense sélectionnée en variable, on passe également la variable de la NDF actuelle pour l’avoir en valeur par défaut :EditForm(FormDépenses);;Navigate(Sc_NDF_Dépenses; Fade;{vctxDépense:ThisItem;vctxNDF:vctxNDF})
-
Entre le formulaire et la gallerie, pour le OnSelect du bouton “+”, on passe simplement la variable vctxNDF pour avoir la valeur par défaut :
NewForm(FormDépenses);;Navigate(Sc_NDF_Dépenses; Fade;{vctxNDF:vctxNDF})
L’écran Sc_NDF_Dépense
-
Ici dans le .item du formulaire, on met la variable correspondant à la dépense sélectionnée :
vctxDépense
-
Ensuite dans la Datacard NDF Item > DataCardValueX, dans le defaultSelectedItems, on met notre NDF sélectionnée :
vctxNDF
Si ça coince ou donne une erreur :Filter(Choices([@NDFdétails].cr2d6_NDFItem), NDF = vctxNDF.NDF)
CommentID=sR8QaE5j9XD2cWX, PostID=AnfuLI5T2x74sRI
-
-
Bonjour,
Pour schématiser la différence entre une formule calculée et une variable :
-
Dans le cas d’une variable, on stocke le résultat d’une formule en mémoire
-
Dans une formule nommée, on crée un “raccourci” de la formule
Ce qui signifie qu’avec les named formulas, le calcul de la formule est fait à chaque fois que cela est nécessaire, c’est particulièrement utile quand la formule est complexe et que le résultat varie souvent. Par exemple, je les utilise beaucoup pour calculer une différence de temps avec l’heure actuelle, cela évite d’utiliser des timers avec un Set(Variable,…)
Par contre pour ce qui est de faire référence à l’utilisateur actuel, étant donné que cette valeur va être fixe tout au long de la session de l’appli, utiliser une named formula dans ce cas n’apportera aucun bénéfice, voire pourrait être moins efficace.
Attention également, les named formulas sont toujours en preview, ce qui signifie que la fonctionnalité peut disparaitre du jour au lendemain et il vaut mieux éviter de les utiliser en production.
CommentID=TScYrXEbJ7iXHPB, PostID=9mnpwLlBXcECmnq
-
-
Bonjour,
Comme dans beaucoup de fonctionnalités récentes ou en preview, la syntaxe avec séparateur décimal “,” est mal gérée.
Il n’y aura pas beaucoup d’alternative, si tu utilises Edge ou Chrome, il faut aller dans les paramètres de langues du navigateur et mettre l’anglais US en tête de liste
CommentID=3lYpj8RfJSAR8nX, PostID=qKt7KRpJRfd0PI8
-
Bonjour,
Si tu peux créer une règle dans ta liste sharepoint (Remplacer DateWithRule par le nom logique de ta colonne date :
De mémoire, l’erreur générée n’est pas forcément bien interprétée par le formulaire power apps, et cela risque d’être une contrainte si tu dois modifier l’enregistrement plus tard
Du coup pour que ce soit un peu plus user friendly, ou si tu ne peux pas / souhaites pas créer une règle sur ta liste SP :
Pour la couleur de bordure : dans le DatePicker et les DropDowns HourValue et MinuteValue, tu vas trouver la formule dans le paramètre BorderColor, tu vas trouver la formule :
If(IsBlank(Parent.Error), Parent.BorderColor, Color.Red)
que tu peux changer en :
If(IsBlank(Parent.Error) && Parent.Update>Now(), Parent.BorderColor, Color.Red)
Pour le message d’erreur,
Remplacer
Parent.Error
par
Parent.Error&If(Parent.Update<Now(),"La date doit être antérieure à aujourd'hui")
et enfin sur le displaymode du bouton de validation du formulaire :
If(IsEmpty(ErrorMessageXX.Text),DisplayMode.Edit,DisplayMode.Disabled)
CommentID=Y598nSUnZhk4qun, PostID=s9fsO5Ut1CgxnOC
-
Ha ok je comprends mieux pourquoi cet affichage 😀
Les affichages des colonnes recherche sont systématiquement du texte, donc deux solutions :
-
Voir dans Sharepoint si tu peux formater cet affichage directement dans la liste qui a la colonne de recherche
-
Soit dans Power Apps, en transformation ce champ texte en valeur avec la commande Value()
Et plus complexe, il me semble que tu es en FR-FR dans l’éditeur, donc un séparateur décimal “,” et ta valeur est avec un séparateur “.”
Donc il faudra certainement spécifier le langage dans le value :
Value(ThisITem.’Demandeur: Solde CP’.Value;”en-US”)
-
Sinon tu peux utiliser les fonction Left() et Len() pour tronquer la chaîne :
Left(ThisITem.’Demandeur: Solde CP’.Value;Len(ThisITem.’Demandeur: Solde CP’.Value)-11)
CommentID=SNUOgZ77Z3yMfhK, PostID=uij720GIJONCMuR
-
-
Bonjour Patrice ,
Je ne peux pas vraiment t’expliquer comment réagit cette fonction de création d’App à partir d’une gallerie, je préfère généralement parir de zéro : )
Par contre en ce qui concerne la formule, c’est une mise en forme (au format texte) de ta valeur, qui est bien une valeur numérique. Le format est le second argument passé dans la fonction Text() : “##,#”
Si tu le remplaces par “#,0″n tu te retrouveras avec un seul chiffre après la virgule, d’autres exemples :
Text(1,5;”000,00″) => 001,50
Text(Now();”ddd dd/mm/yyyy hh:mm”) => jeu 16/02/2023 09:00
CommentID=R4GMr5uoEN7SxKp, PostID=uij720GIJONCMuR
-
DavidZed
Membre15 février 2023 à 14h57 en réponse à: Remplissage automatique à l'aide de colonne recherche sur une liste sharepointAttention avec ForAll() si tu as de gros volumes de données, c’est rarement optimisé 🙂
CommentID=tSc4dugUiXE3Z3P, PostID=6eTzHodIvac1hrj
-
DavidZed
Membre14 février 2023 à 10h24 en réponse à: Remplissage automatique à l'aide de colonne recherche sur une liste sharepointAlors il faut démêler un peu 🙂
En admettant que ta liste ‘CRM-Détail Commandes’ a 2 colonnes lookup nommées :
Client, Commande,
Pour les clients, cela devrait ressembler à :
Filter( Choices('CRM-Détail Commandes'.Client); Id in ShowColumns( Filter( 'CRM-Client'; StartsWith(NomClient,TextInputNomDuClient.Text )); "ID" ) )
Pour les conditions de facturation, je pense que ta colonne de recherche devrait être au niveau de ta liste ‘commande’
il faudra peut être inverser “Id” et “ID”. Je n’ai pas le temps de tester, mais tu as déjà une bonne piste 🙂
CommentID=yHGbPLwOeGMK3uh, PostID=6eTzHodIvac1hrj
-
DavidZed
Membre14 février 2023 à 9h13 en réponse à: Remplissage automatique à l'aide de colonne recherche sur une liste sharepointIl faut remplacer NomClient = true par StartsWith(NomClient.Value; ‘Ton TextInput de recherche client’.Text)
Et pour la condition de facturation, la condition sera Commande.Id= ComboBoxSelectionCommande.Selected.ID
CommentID=51UcAZxk7ykwgCI, PostID=6eTzHodIvac1hrj
-
DavidZed
Membre14 février 2023 à 8h19 en réponse à: Remplissage automatique à l'aide de colonne recherche sur une liste sharepointBonjour Tom Victor ,
A mon avis la solution que tu cherches correspond à ce que R3dKap a posté récemment dans la base de connaissances :
filter-une-colonne-lookup-sur-la-base-d-une-autre-colonne-dans-la
CommentID=pFupQR6IOzbWSF1, PostID=6eTzHodIvac1hrj
-
Hello ChezWam ,
Pour un besoin similaire : j’avais une source SQL de lignes de commandes, de laquelle je devais importer les lignes de commande et créer une table avec les commandes (numéro de commande présent sur chaque ligne de commande).
Cela a été très simple à faire avec des dataflows (je ne suis pas du tout passé par power Automate) :
A partir d’une requête, j’ai fait toutes les transformations de données nécessaires, puis j’ai splité ma requête en deux : une avec un Table.Group () sur le numéro de commande pour créer les commandes et une autre laissé tel quelle pour les lignes.
Ensuite j’ai géré les liaisons avec une clé secondaire paramétrée dans Dataverse.
Cela m’a permis aussi de gérer les agrégations directement dans la requête power query : Total Articles, colis, poids etc….
CommentID=cRjCzbeN5ZrJcPW, PostID=q7NJ9yYUXh7KgZy
-
DavidZed
Membre6 mars 2023 à 10h32 en réponse à: Dataverse relation table et formulaires power appsOui, de manière plus générale, le paramètre DefaultSelectedItems d’un ComboBox s’adapte à la source de données qui lui est assignée :
(simple valeur) => Un enregistrement : {ID:12, Value: “Azerty1234”}
(multiple valeur) => Une table d’enregistrements : Table({ID:10, Value: “Toto1234”},{ID:12, Value: “Azerty1234”},{ID:12, Value: “Pinpin1234”})
SubCommentID=Xdv5EUGR5xjAF2G, CommentID=5EiJUJTnB3I2EhK, PostID=AnfuLI5T2x74sRI
-
DavidZed
Membre1 mars 2023 à 18h08 en réponse à: Dataverse relation table et formulaires power appsHello,
Tu peux essayer ceci :
Remettre Parent.Default dans le DefaultSelectedItems
Et dans le .Default du DataCard parent, si ton champ est mono valué, tu mets ta variable, sinon Table(‘Ta variable’)
SubCommentID=mEAczRYyOm7CfaK, CommentID=XgAT8HOkjTJxPNl, PostID=AnfuLI5T2x74sRI