rangees colonne sharepoint power apps

  • rangees colonne sharepoint power apps

    Posté par Axel sur 23 janvier 2025 à 9h54

    Bonjour Amis de la communauté,

    je rencontre une difficulté avec mon code. Je soupçonne qu’il s’agisse d’un problème avec la colonne de mon Sharepoint mais je ne suis pas suffisament expert pour savoir. Voici mon code :

    <div>
    <div> Patch(</div>
    <div> ‘TOUR TERRAIN’;</div>
    <div> Defaults(‘TOUR TERRAIN’);</div>
    <div> {</div>
    <div> Combobox1Selection: ThisRecord.Combobox1Selection; // Envoie directement la valeur de texte</div>
    <div> Combobox2Selection: ThisRecord.Combobox2Selection; // Idem pour Combobox2</div>
    <div> Date: ThisRecord.Date; // La date sera envoyée telle quelle</div>
    <div> photoCaptured:ThisRecord.PhotoCaptured</div>
    <div> }</div>
    <div> )</div>
    <div>)</div>
    Tout est ok sauf la dernière ligne. Pour que vous compreniez mieux. grace à un button, j’envoie dans sharepoint : Combobox1Selection, Combobox1Selection et date.</div>
    <div> </div>
    <div>Voici les colonnes de mon sharepoint : </div>
    <div> </div>
    <div></div>

    R3dKap a répondu Il y a 2 jours, 18 heures 3 Membres · 19 Réponses
  • 19 Réponses
  • Geoffroy

    Membre
    23 janvier 2025 à 12h02

    Bonjour Axel,

    Dans ton Patch, il manque la majuscule pour le champ PhotoCaptured

  • Axel

    Membre
    23 janvier 2025 à 12h18

    Bonjour Geoffroy

    Merci pour ton retour,

    Raté 😉 c’est pas ça!!!!!

    J’ai ce message d’erreur :

  • R3dKap

    Membre
    23 janvier 2025 à 13h32

    Salut @Axel,

    C’est bizarre ton utilisation du ThisRecord. Habituellement on le réserve à l’imbrication des boucles ForAll() par ex. Est-ce que ton code est déclenché par un bouton dans une galerie ? Auquel cas ça devrait plutôt être ThisItem.

    Pourquoi ThisRecord ?

  • Axel

    Membre
    23 janvier 2025 à 14h22

    Bonjour R3dKap, je me suis aidé de chatGPT pour cela.

    Qu’appelles tu une galerie ? mon bouton est buttonCanvas2 sur un screen.

  • Axel

    Membre
    23 janvier 2025 à 14h31

    Pardonnes moi,

    J’ai une autre question / suggestion.

    Tu trouvera la capture d’écran plus bas. Quand je tape la fonction : PhotoCaptured.ThisRecord.(….)

    Ca ne me met pas en suggestion PhotoCaptured. Je suppose qu’il ne trouve pas la colonne dans Sharepoint !!!!!

    Mais pourtant dans sharepoint cette colonne y est :

  • R3dKap

    Membre
    23 janvier 2025 à 15h20

    Alors pour pouvoir construire ton instruction Patch() proprement il faut que tu nous dises ou montre comment ton écran est organisé : est-ce que les combos sont directement sur l’écran ou dans un contrôle formulaire ? Quel est le contrôle que tu utilises pour prendre la photo et qui doit alimenter la colonne PhotoCaptured de ta liste SP ?

  • Axel

    Membre
    23 janvier 2025 à 16h00

    R3dKap,

    Les combos sont directement dans le screen3.

    La fonction prise de photos, dans un AddMediaButton1 :

    Dans la propriété OnSelect :

    <div>
    <div>Set(photoCaptured;AddMediaButton1.Media) </div>
    <div> </div>
    <div>Qui doit alimenter la colonne dans SP : je n’ai peut être pas bien compris la question.</div>
    <div>Il s’agit de ButtonCanvas2.</div>
    <div> </div>
    <div>Merci beaucoup pour ton aide</div>
    <div> </div>
    </div>

  • R3dKap

    Membre
    23 janvier 2025 à 16h56

    Tu dois modifier le code du OnSelect de ton AddMediaButton1 comme ceci :

    Set(photoCaptured; UploadedImage1.Image)

    En effet, c’est le contrôle UploadedImage1 situé à l’intérieur du groupe AddMediaWithImage1 qui porte le contenu de l’image.

    Ensuite, tu dois modifier ton Patch() ainsi :

    Patch(
    'TOUR TERRAIN';
    Defaults('TOUR TERRAIN');
    {
    Combobox1Selection: Combobox1Selection.Selected.Text; // Ici c'est .Value au lieu de .Text si c'est un contrôle moderne au lieu du contrôle classique
    Combobox2Selection: Combobox2Selection.Selected.Text;
    PhotoCaptured: photoCaptured
    }
    )

    Voilà… Dis-nous si ça marche…

  • Axel

    Membre
    23 janvier 2025 à 21h20

    Bonsoir,

    Je te fais un retour. Concernant

    AddMediaButton1 : il me met le message d’erreur :

    Le nom n’est pas valide uploadedimage1 n’es pas reconnue.

    Concernant la fonction Patch :

    Voilà. Galère Galère mais on tient bon 😉

    J’ai ajouté Date car tu l’avais oublié je pense mais je l’ai laissé en thisrecord.

    Merci encore pour ton aide

  • R3dKap

    Membre
    24 janvier 2025 à 11h01

    Est-ce que tu peux me mettre une capture de ton contrôle AddMediaButton1 qui se trouve dans l’arborescence de ton écran ? Genre comme ça :

    Et si tu peux aussi mettre une capture du code que tu as mis dans le OnSelect du AddMediaButton1… 🙏

    Pour la formule du Patch() :

    • Est-ce que tu sais si tes combo box sont des combo classiques ou modernes ?
    • Le ThisRecord ne sert à rien ici -> quelle valeur de date veux-tu mettre dans la colonne Date de ta liste ?

    Peut-être que ça serait intéressant aussi que tu mettes une capture de tes écrans tout entier… 😉

  • Axel

    Membre
    24 janvier 2025 à 11h30

    Bonjour R3dKap,

    Voici mon retour :

    arborescence du addmebutton1 :

    La fonction de la propriété Onselect :

    <div>
    <div>Set(photoCaptured;AddMediaButton1.Media)</div>
    <div> => j’ai remis l’ancien car celui que tu m’avais proposé ne fonctionnait pas.</div>
    <div> </div>
    <div>- Combobox : ce sont des comboboxcanvas 1 et 2</div>
    <div>- La valeur que je veux mettre dans la colonne date de ma liste est la date saisie de mon datapicker1.</div>
    <div> </div>
    <div></div>
    <div></div>
    <div></div>
    <div> </div>
    <div>Je te reitère mes remerciements ca je galère ;)</div>
    <div> </div>
    <div>Axel</div>
    </div>

  • R3dKap

    Membre
    24 janvier 2025 à 19h51

    Super merci…

    Comment ça se fait que ton AddMediaButton1 est tout seul ? Normalement il devrait être dans un groupe avec un UploadedImage1 comme sur ma capture. Car c’est le contrôle UploadedImage1 qui contient le code de l’image, pas le AddMediaButton1.Media. Il faut que tu remettes un contrôles Ajouter une image depuis le menu Insérer. Et ensuite mettre le code que j’avais donné dans le OnSelect : Set(photoCaptured; UploadedImage1.Image).

    Et ton Patch() du coup, selon ce que je vois, devrais être ainsi :

    Patch(
    'TOUR TERRAIN';
    Defaults('TOUR TERRAIN');
    {
    Combobox1Selection: Combobox1Selection.Selected.Value;
    Combobox2Selection: Combobox2Selection.Selected.Value;
    PhotoCaptured: photoCaptured;
    Date: DatePicker1.SelectedDate
    }
    )

    Voilou…

  • Axel

    Membre
    25 janvier 2025 à 9h00

    Bonjour R3dKap,

    Ca y est mon patch fonctionne, BONNE NOUVELLE. Merci beaucoup.

    Mais!!! la photo prise n’apparait pas dans mon SP. J’ai pourtant fait ce que tu m’as donné. A moins que je me sois trompé….. La colonne de mon SP pour les photos s’appelle PhotoCaptured. Il faut que je la nomme autrement ?

  • R3dKap

    Membre
    25 janvier 2025 à 16h10

    Est-ce que la photo n’est pas visible dans SharePoint ou dans ton application ? Dans ton application c’est normal. Il y a du code à mettre en place pour que ça fonctionne. Mais normalement, si la fonction Patch() fonctionne sans erreur, ton image doit être stockée dans la colonne PhotoCaptured de ta liste SharePoint.

    Est-ce que tu vois l’image quand tu vas dans SharePoint ? Est-ce que tu peux mettre une capture de ta liste où on est censé voir la photo de l’enregistrement créé ou mis à jour ?

    Pour afficher la photo dans l’application, cela veut dire qu’à un moment donné tu reviens en modification sur un élément de ta liste TOUR TERRAIN. Et donc tu dois avoir quelque part une donnée qui te permet de savoir quel est l’élément concerné. Comment as-tu géré ça dans ton application ? Comment fais-tu pour éditer un tour terrain enregistré précédemment ? Peux-tu mettre une capture de ton écran d’accueil ? Ou as-tu un écran qui liste tous les tours terrain ?

  • Axel

    Membre
    25 janvier 2025 à 17h17

    R3dKap,

    Je suis désolé de t’embeter autant… Merci pour ta patience.

    Je te remet tout ca :

    Dans mon Buttoncanvas2 :

    <div>
    <div>Patch(‘TOUR TERRAIN’;{Combobox1Selection:ComboboxCanvas1.Selected.Value;Combobox2Selection:ComboboxCanvas2.Selected.Value;PhotoCaptured:Image1;Date: DatePickerCanvas1.SelectedDate})</div>
    </div>

    Dans mon AddMediaButton :

    OnSelect : Set(PhotoCaptured;AddMediaButton1.Media)

    Dans Image1 : Dans la propriété Image : Photocaptured

    • Axel

      Membre
      25 janvier 2025 à 17h19

      R3dKap,

      Je suis désolé de t’embeter autant… Merci pour ta patience.

      Je te remet tout ca :

      Dans mon Buttoncanvas2 :

      <div>
      <div>Patch(‘TOUR TERRAIN’;{Combobox1Selection:ComboboxCanvas1.Selected.Value;Combobox2Selection:ComboboxCanvas2.Selected.Value;PhotoCaptured:Image1;Date: DatePickerCanvas1.SelectedDate})</div>
      </div>

      Dans mon AddMediaButton :

      OnSelect : Set(PhotoCaptured;AddMediaButton1.Media)

      Dans Image1 : Dans la propriété Image : Photocaptured

      Je ne cherche pas forcément à ce que la photo prise soit visible dans l’application tant qu’elle l’est dans le SP.

Page 1 sur 2

Connectez-vous pour répondre.