Problème écriture [Collection].champ

  • Problème écriture [Collection].champ

    Posté par lionel sur 3 octobre 2024 à 14h15

    Bonjour j’ai besoin d’aide pour une formule. J’ai 2 collections qui ont les mêmes intitulés de champs, et je souhaite mettre à jour les informations d’une avec les infos de l’autre :

    <div>
    <div>ForAll(lesscans;</div>
    <div> Patch(letestsource;LookUp(letestsource;id=id);{ val:ThisRecord.val});;</div>
    <div> Collect(letruc;{id:ida;val:val})</div>
    <div> )</div>
    </div>

    Comment puis-je lui indiquer quelque chose du genre [@letestsource].id = [@lesscans].id ?

    Je vous remercie.

    DavidZed a répondu Il y a 2 semaines 2 Membres · 2 Réponses
  • 2 Réponses
  • lionel

    Membre
    3 octobre 2024 à 15h54

    Une petite solution qui fonctionne :

  • DavidZed

    Membre
    3 octobre 2024 à 20h43

    Si les deux collections proviennent de la même source de données (Mêmes noms de colonne et même clef primaire), tu peux ajouter les résultats de la collection 2 à la collection 1

    Collect(Collection1;Collection2)

    Si tu veux remplacer les valeurs de la collection 1 par celles de la collection 2 :

    ClearCollect(Collection1;Collection2)

    Si tu veux mettre à jour la collection 1 avec les enregistrements de la collection 2 (ou les créer s’ils n’existent pas dans la collection 1) :

    Patch(Collection1; Collection2)

    Si tu veux mettre à jour une colonne de la collection 1 avec les valeurs de la collection 2 :

    Patch(Collection1 ; ForAll(Collection2 As Col2 ; {Id: Col2.Id , Name: Col2.Name} ))

    Si par contre les collections ne sont pas ISO, tu peux faire du UpdateIf

    ForAll(Collection2 As Col2, UpdateIf(Collection1; Id=Col2.Id ; {Name : Col2.Name} ))

    Mais ce sera beaucoup plus efficace avec des collections iso

Connectez-vous pour répondre.