D'un champ multivalué à un autre...

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

D'un champ multivalué à un autre...

Messagepar jeulin » 11 Mai 2010 à 16:03

Bonjour à tous,

me revoilà avec un question sans doute simpliste pour ne pas dire "simplète" : je veux copier par LS des informations d'un champ multivalué situé dans un document dans un autre champ multivalué dans un autre document, tout cela en programmation dorsale.

Puis-je le faire directement ou dois-je absolument passer "item" par "item" ?

"Item by item", cela marche bien sur le plan des données brutes mais je n'arrive pas à "rafraîchir" le document, quoique je fasse (ou plutôt que je sache faire) et dans ma vue de réception, le nouveau document n'est pas "compris" comme ayant un champ multivalué... Il faut que je rafraîchisse manuellement avec "@Command([ToolsRefreshSelectedDocs])".

Je ne sais pas si je suis clair ?!?

Merci d'avance de vos suggessions !
jeulin
Premier posts
Premier posts
 
Message(s) : 35
Inscrit(e) le : 26 Nov 2007 à 08:38

Messagepar Michael DELIQUE » 11 Mai 2010 à 16:11

salut

montre nous ton code
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar jeulin » 12 Mai 2010 à 07:52

Bonjour,

mon code est simple :

Code : Tout sélectionner
Set docRif = viewRif.GetDocumentByKey (parametre.value)
If Not(docRif Is Nothing) Then
     valeurRif=""
     Set itemRif = docRif.GetFirstItem( "RifFullNameNotes" )
     Forall vtemp In itemRif.Values
          If valeurRif = "" Then
               valeurRif = vtemp
          Else
               valeurRif = valeurRif + "," + vtemp     <= "," ou ";" : idem
          End If
     End Forall
     Call doc.replaceitemvalue("RifFullNameNotes", valeurRif)
Else
     Call doc.replaceitemvalue("RifFullNameNotes", "Nom du RIF inconnu")
End If
Call doc.computewithform(True,True)   <= avec ou sans : idem
Call doc.save(True,True)


Tout se remet "d'équerre" si je passe la commande de rafraîchissement...

Il y a un "schtuk" mais je ne le vois pas... :(
jeulin
Premier posts
Premier posts
 
Message(s) : 35
Inscrit(e) le : 26 Nov 2007 à 08:38

Messagepar Michael DELIQUE » 12 Mai 2010 à 08:17

salut

aucun interet de la boucle pour concaténer les valeur du champ source, ton probleme viens de là.

tu passe une chaine il faut donc réafficher le document pour qu'il interprète la chaine et l'explode en un tableau

pour ma part je ferais comme ça :
Code : Tout sélectionner
   Set docRif = viewRif.GetDocumentByKey (parametre.value)
   If Not(docRif Is Nothing) Then
      Call doc.replaceitemvalue("RifFullNameNotes", call docRif.getitemValue("RifFullNameNotes"))
   Else
      Call doc.replaceitemvalue("RifFullNameNotes", "Nom du RIF inconnu")
   End If
   Call doc.computewithform(True,True)   <= avec ou sans : idem
   Call doc.save(True,True)
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar jeulin » 12 Mai 2010 à 13:24

Thank you very much, Sir !

Cela marche parfaitement... (sous réserve d'enlever le petit "call" égaré là où il ne doit pas être). :D

Merci et bon jeudi de l'Ascension à tous !
jeulin
Premier posts
Premier posts
 
Message(s) : 35
Inscrit(e) le : 26 Nov 2007 à 08:38


Retour vers Développement

cron