Modification champ texte riche

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

Modification champ texte riche

Messagepar jcdhl » 02 Fév 2010 à 10:34

Bonjour,

Je souhaite copier le contenu d'un champ texte riche dans un autre dans un même document.

D'après les recherches que j'ai pu faire sur ce forum, je n'ai pas réussi à faire ce que je souhaite. Je pense qu'il faut passer par le postopen du masque mais je sèche.

Quelqu'un peut-il m'aider.

Cordialement
Jcdhl
jcdhl
Premier posts
Premier posts
 
Message(s) : 12
Inscrit(e) le : 02 Fév 2010 à 10:29

Messagepar Michael DELIQUE » 02 Fév 2010 à 10:38

salut

comment fais tu ?

tu as essayé ça :

Set notesItem = notesDocument.CopyItem( item, newName$ )
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 LSong » 02 Fév 2010 à 11:37

dans un richetextItem tu as une fonction qui est
appendRTItem qui copie un champs dans un autre
LSong
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 353
Inscrit(e) le : 07 Nov 2007 à 14:27
Localisation : Ile de france

Messagepar jcdhl » 02 Fév 2010 à 13:11

Re-bonjour,

Merci pour vos réponses si rapide.
J'ai essayé avec la méthode de Lsong, je crois que j'y arrive mais le problème est qu'il recopie à la fin du champ. Il recopie également les propriétés de masquage du champ ce que je ne souhaite pas.

Pour la méthode avec copyitem, je ne dois pas l'utiliser correctement j'ai un message d'erreur du type :

"Variant does not contain an object"

Merci.
Jcdhl
jcdhl
Premier posts
Premier posts
 
Message(s) : 12
Inscrit(e) le : 02 Fév 2010 à 10:29

Messagepar lebanner » 02 Fév 2010 à 13:18

Bonjour,

le "Variant does not..." siginifie qu'il manque une instanciation.

est ce que tu peux nous montrer le code pour que l'on puisse t'aider ?
lebanner
Roi des posts
Roi des posts
 
Message(s) : 683
Inscrit(e) le : 19 Juin 2008 à 09:43
Localisation : Lille

Messagepar LSong » 02 Fév 2010 à 13:35

le appendRTItem ... fait comme son nom l'indique un ... append :D
ca copie tout masquage inclu

tout comme le copyItem

c'est quoi le besoin ? tu veux effacer les options de masquage dans le RT ?
faut passer par les import DLX en theory pour effacer les option de masquage
LSong
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 353
Inscrit(e) le : 07 Nov 2007 à 14:27
Localisation : Ile de france

Messagepar jcdhl » 02 Fév 2010 à 13:47

Le plus simple serait peut-être de revoir mon besoin.
Le principe est le suivant :
Une personne rempli le champ et enregistre le document
Lorsque le document est de nouveau ouvert, le champ ne doit pas être modifiable.
Est-ce possible d'avoir accès à ce champ richtext qu'en lecture ?

Si oui, cela sera parfait.

Merci.
Jcdhl

sinon voici mon code :
Code : Tout sélectionner
Sub Postsave(Source As Notesuidocument)
   Dim workspace As New NotesUIWorkspace
   Dim doc As NotesDocument
   Dim rtitem As NotesRichTextItem
   Dim rtitem2 As NotesRichTextItem
   Dim uidoc As NotesUIDocument
   
   Set uidoc = workspace.CurrentDocument
   Set doc = uidoc.Document
   
   Set rtitem = doc.GetFirstItem("autreSourceInformationTiers")
   Set rtitem2 = doc.GetFirstItem("autreSourceInformationTiers_2")
   Call doc.RemoveItem("autreSourceInformationTiers_2")
   
   'Set rtitem2 = doc.CopyItem( rtitem, "autreSourceInformationTiers_2")
   Call rtitem2.AppendRTItem( rtitem )
   
   Call doc.Save(True, False)
End Sub
jcdhl
Premier posts
Premier posts
 
Message(s) : 12
Inscrit(e) le : 02 Fév 2010 à 10:29

Messagepar Michael DELIQUE » 02 Fév 2010 à 14:14

salut

je ferais comme ça pour ton code

Code : Tout sélectionner
   Dim doc As NotesDocument
   Dim rtitem As NotesRichTextItem
   Dim rtitem2 As NotesRichTextItem
   
   On Error Goto ErreurHandle
   
   Set doc = source.Document
   
   Set rtitem = doc.GetFirstItem("autreSourceInformationTiers")
   
   If Not rtItem Is Nothing Then
      Set rtitem2 = doc.GetFirstItem("autreSourceInformationTiers_2")
      If Not rtItem2 Is Nothing Then
         Call doc.RemoveItem("autreSourceInformationTiers_2")
      End If
      Set rtItem2 = New NotesRichTextItem(Doc,"autreSourceInformationTiers_2")
      
      
      Call rtitem2.AppendRTItem( rtitem )
      
      Call doc.Save(True, False)
   End If
   
   Exit Sub
ErreurHandle:
   Msgbox "Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   Exit Sub
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 jcdhl » 02 Fév 2010 à 14:24

En effet, ton code fonctionne correctement.
Il ne reste plus que le problème du champ masqué ou non

merci
Jcdhl

Michael DELIQUE a écrit:salut

je ferais comme ça pour ton code

Code : Tout sélectionner
   Dim doc As NotesDocument
   Dim rtitem As NotesRichTextItem
   Dim rtitem2 As NotesRichTextItem
   
   On Error Goto ErreurHandle
   
   Set doc = source.Document
   
   Set rtitem = doc.GetFirstItem("autreSourceInformationTiers")
   
   If Not rtItem Is Nothing Then
      Set rtitem2 = doc.GetFirstItem("autreSourceInformationTiers_2")
      If Not rtItem2 Is Nothing Then
         Call doc.RemoveItem("autreSourceInformationTiers_2")
      End If
      Set rtItem2 = New NotesRichTextItem(Doc,"autreSourceInformationTiers_2")
      
      
      Call rtitem2.AppendRTItem( rtitem )
      
      Call doc.Save(True, False)
   End If
   
   Exit Sub
ErreurHandle:
   Msgbox "Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   Exit Sub
jcdhl
Premier posts
Premier posts
 
Message(s) : 12
Inscrit(e) le : 02 Fév 2010 à 10:29

Messagepar Michael DELIQUE » 02 Fév 2010 à 14:32

pour cacher un champ tu as les options de masquage, tu as regardé de ce coté là ?

par contre ça marche pas super, surtout avec des piece jointe mais ya un truc pour le passer

sinon ton champ richt text peut tres bien entre en lecture ça ne pose pas de souci, il suffit de le passer en calculé et dans la valeur de lui mettre son propre nom ou la formule @thisvalue
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 LSong » 02 Fév 2010 à 15:46

il y a moulte facon de rendre non modifiable un champs riche text

- tu peu utiliser les subforme calculé, une est en édit et l'autre en lecture
- tu peu utiliser les section a accé controlé (si tu es dans un tableau)

deux solution simple sans avoir besoin de coder
LSong
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 353
Inscrit(e) le : 07 Nov 2007 à 14:27
Localisation : Ile de france

Messagepar jcdhl » 03 Fév 2010 à 08:20

Bonjour,

Je suis un grand débutant dans le développement Lotus.
Pour le moment je vais me contenter dans champ texte simple avec lequel j'arrive à faire ce que je veux.

Dès que j'aurais un peu plus de temps, je vais revoir complètement la conception de mon masque.

Je vous remercie pour votre aide qui m'a donné des pistes pour résoudre mon problème et qui m'a amené à voir que la conception de mon masque n'est pas du tout adaptée à l'utilisation que je souhaite en faire.

Merci encore pour votre aide et surement à bientôt sur ce forum pour d'autres questions.

Cordialement
Jean Christophe
jcdhl
Premier posts
Premier posts
 
Message(s) : 12
Inscrit(e) le : 02 Fév 2010 à 10:29


Retour vers Développement

cron