Problème écriture [Collection].champ

  • Problème écriture [Collection].champ

    Posté par lionel sur 3 octobre 2024 at 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 6 months, 2 weeks ago 2 Membres · 2 Réponses
  • 2 Réponses
  • lionel

    Member
    3 octobre 2024 at 15h54

    Une petite solution qui fonctionne :

  • DavidZed

    Member
    3 octobre 2024 at 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.