Page 1 sur 1

Copier un champ texte riche en lotus script coté client lour

MessagePublié: 03 Déc 2010 à 10:34
par madani
Bonjour,

J'ai cherché sur le forum mais je n'ai pas trouvé. :?

Je cherche à copier un champ texte riche dans un autre document.

J'arrive a copier tous les autres champs de type textes et autres.

Mais je n'arrive pas a copier les champs de type texte riche avec un fichier attacher.

Comment doit on procéder, en sachant que j'ai pas mal de fichier attaché sur différents textes riches.

Merci avance :)

MessagePublié: 03 Déc 2010 à 10:36
par StasS
Le copyitem ne fonctionne pas ?
Sinon tu détache la pj en local pour l'ajouter à la destination, puis suppression de la copie locale

MessagePublié: 03 Déc 2010 à 10:43
par Michael DELIQUE
salut

regarde à

Set notesItem = notesItem.CopyItemToDocument( document, newName$ )

dans l'aide en ligne

MessagePublié: 03 Déc 2010 à 11:29
par madani
oui idée de détacher la pièce jointe je connais, mais d'un point de vue performance c'est pas le but.

Merci je vais regarder avec set notesItem notesItem.CopyItemToDocument( document, newName$ )

Merci de m'avoir répondu rapidement

MessagePublié: 03 Déc 2010 à 12:26
par billbock
AppendRTITEm est ce qui marche le mieux

MessagePublié: 03 Déc 2010 à 15:52
par madani
Re

Voilà j'ai essayer ce bout de code , il fonctionne mais que dans mon masque sur lequel je suis.

Moi je voudrais faire un copier de certains champ du masque ouvert dans un autre masque qui s'ouvre avec des champs pré rempli.

Fonctionne sur le document ouvert

Code : Tout sélectionner
Sub Click(Source As Button)
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim docA As NotesDocument
   Dim docB As NotesDocument
   Dim rtitemA As Variant
   Dim rtitemB As Variant
   Set uidoc = ws.CurrentDocument
   Set docA = uidoc.Document
   'Call uidoc.Save
   
   
   Set rtitemB = docA.GetFirstItem( "Body" )                 'le fichier a copier
   
   Set rtitemA = docA.GetFirstItem( "attacher_Piece" ) 'l'emplacement de la copie
   
   If ( rtitemA.Type = RICHTEXT And rtitemB.Type = RICHTEXT ) Then
      Call rtitemA.AddNewLine(1) 'on ajoute une ligne
      Call rtitemA.AppendRTItem( rtitemB ) 'on copie un fichier joint
      Call docA.Save(False, True)
      Call uidoc.Close
   End If
End Sub



Mais celà ne marche pas quand j'ouvre un autre document,

Ne fonctionne pas
[objet not set]:

Code : Tout sélectionner
Dim wsA As New NotesUIWorkspace
   Dim wsB As New NotesUIWorkspace
   Dim ws As New NotesUIWorkspace
   Dim uidocB As NotesUIDocument
   Dim uidocA As NotesUIDocument
   Dim docA As NotesDocument
   Dim docB As NotesDocument
   Dim rtitemA As Variant
   Dim rtitemB As Variant
   
   '//Premier doc
   Set uidocA = ws.CurrentDocument
   Set docA = uidocA.Document
   'Call uidoc.Save
   Set rtitemA = docA.GetFirstItem( "Body" )                 'le fichier a copier
   
   '//Deuxième Doc
   Set uidocA = ws.ComposeDocument ( "", "", "Document" )
   Set docB = uidocA.Document
   
   Set rtitemB = docB.GetFirstItem( "attacher_Piece" ) 'l'emplacement de la copie
   
   'If ( rtitemA.Type = RICHTEXT And rtitemB.Type = RICHTEXT ) Then
   Call rtitemB.AddNewLine(1) 'on ajoute une ligne
   Call rtitemB.AppendRTItem( rtitemA ) 'on copie un fichier joint
   Call docA.Save(False, True)
   Call uidocA.Close
   Call docB.Save(False, True)
   Call uidocB.Close
   'End If


Merci avance

MessagePublié: 03 Déc 2010 à 15:54
par Michael DELIQUE
re

"objet not set" veux dire que tu as un objet non initialisé.

regarde en mode débug et insert une gestion des erreur pour avoirplus d'information sur ce qui coince => http://forum.dominoarea.org/gestion-des ... 12054.html

MessagePublié: 03 Déc 2010 à 16:23
par madani
Merci Michael je vais regarder

MessagePublié: 04 Déc 2010 à 01:51
par roubech
pour manipuler un RTitem, il faut obligatoirement travailler en backend et enregister le doc avant de l'afficher à l'écran