Page 1 sur 1

transmettre valeur à un champ texte riche par boite de dialo

MessagePublié: 25 Juil 2003 à 14:04
par clémentine
Rebonjour, Je souhaiterais, en LotusScript(ou en formule si vous savez faire), ajouter le contenu, saisi dans une boite de dialogue par un utilisateur, dans un champ calculé de type text riche.J'ai une action "ajouter ligne" avec le code suivante(je débute en LotusScript) :Sub Click(Source As Button) Dim doccb As NotesDocument Dim ws As New NotesUIWorkspace Dim uidoc As NotesUIDocument Dim chtext As Variant Dim ajout As Variant 'on commence par se placer sur le document courant en back end Set uidoc = ws.CurrentDocument Set doccb = uidoc.Document 'ensuite on se place dans le champ de texte riche Set chtext = doccb.GetFirstItem("tr") Set chtext = New NotesRichTextItem ( doccb, "tr" ) 'on demande ce qu on veut mettre comme valeur ajout = Inputbox ("quelle valeur voulez-vous ajouter?", "titre", "entree par défaut") Call chtext.AddNewLine( 2 ) Call chtext.AppendText( "ajout" ) '--> ajoute à chtext le texte contenu dans ajout Call doccb.Save( False, True ) '--> on enregistre 'on recharge le doc courant Call uidoc.reload End SubJe n'ai pas d'erreur à l'éxécution, la boite de dialogue apparaît bien mais le champ text riche ne se remplit pas.Qu'est ce qui ne fonctionne pas dans le code?Merci.

Re: transmettre valeur à un champ texte riche par boite de d

MessagePublié: 25 Juil 2003 à 14:27
par phi
Salut,Il y a qques trucs qui me paraissent bizarre, je ne sais pas si c'est la cause du problème...> Set chtext = doccb.GetFirstItem("tr")> > Set chtext = New NotesRichTextItem ( doccb, "tr" ) là, tu fais deux fois l'initialisation de chtext c'est inutile (sans conséquence)> Call chtext.AppendText( "ajout" )pour ajouter le contenu de la variable ajout, enlève les guillemets sinon ça ajoute "ajout"> Call uidoc.reloadmieux vaut faire un uidoc.save avant le reloaddésolé, je n'ai pas d'autres idées, si après ça marche c'est un miracle ;)Phi.

Re: transmettre valeur à un champ texte riche par boite de d

MessagePublié: 25 Juil 2003 à 14:32
par clémentine
pas de miracle en vue....merci quand même de ton aide.

Re: transmettre valeur à un champ texte riche par boite de d

MessagePublié: 25 Juil 2003 à 14:32
par Rigol'man
essaie avec ca :Sub Click(Source As Button) Dim doccb As NotesDocument Dim ws As New NotesUIWorkspace Dim uidoc As NotesUIDocument Dim chtext As Variant Dim ajout As Variant 'on commence par se placer sur le document courant en back end Set uidoc = ws.CurrentDocument Set doccb = uidoc.Document ajout = Inputbox ("quelle valeur voulez-vous ajouter?", "titre", "entree par défaut") Dim tmp As Variant tmp = uidoc.FieldGetText("tr") Call uidoc.FieldSetText( "tr", tmp + Chr(10) + Chr(10) + ajout) Call doccb.Save( False, True ) '--> on enregistre 'on recharge le doc courant Call uidoc.reload End Sub[%sig%]

Re: transmettre valeur à un champ texte riche par boite de d

MessagePublié: 25 Juil 2003 à 14:38
par Rigol'man
oublie ce que g mis ca ne garde que le texte !! :o(g honte , vivement le week end !!!!![%sig%]

Re: transmettre valeur à un champ texte riche par boite de d

MessagePublié: 25 Juil 2003 à 14:39
par Rigol'man
essaie plutot ca :Sub Click(Source As Button) Dim doccb As NotesDocument Dim ws As New NotesUIWorkspace Dim uidoc As NotesUIDocument Dim chtext As Variant Dim ajout As Variant 'on commence par se placer sur le document courant en back end Set uidoc = ws.CurrentDocument Set doccb = uidoc.Document ajout = Inputbox ("quelle valeur voulez-vous ajouter?", "titre", "entree par défaut") Call uidoc.FieldAppendText( "tr", Chr(10) + Chr(10) + ajout) Call doccb.Save( False, True ) '--> on enregistre 'on recharge le doc courant Call uidoc.reload End Sub[%sig%]

Re: transmettre valeur à un champ texte riche par boite de d

MessagePublié: 25 Juil 2003 à 14:55
par clémentine
" l'instruction a "0x000 ..." emploie l'adresse mémoire "0x0....". La mémoire ne peut être "read". Cliquez sur ok pour terminer le programe sur annuler pour déboguer"......ouaip....après quelques redémarrages de notes et quelques modifs, je n'ai toujours pas réussi à faire marcher ce code.

Re: transmettre valeur à un champ texte riche par boite de d

MessagePublié: 25 Juil 2003 à 14:56
par Droad
ya surement du réglage, mais voila (attention à bien modifier la ligne ATTENTION avec le nom de ton masque):Sub Click(Source As Button) Dim ws As New NotesUIWorkspace, session As New NotesSession Dim uidoc As NotesUIDocument, doccb As NotesDocument Dim chtext As Variant Dim ajout As Variant 'on commence par se placer sur le document courant en back end Set uidoc = ws.CurrentDocument Set doccb = uidoc.Document 'ensuite on se place dans le champ de texte riche If doccb.HasItem("RichText") Then Set chtext = doccb.GetFirstItem("RichText") Else Set chtext = New NotesRichTextItem(doccb, "RichText") End If 'ATTENTION: If Not doccb.HasItem("Form") Then doccb.Form = "document" 'on demande ce qu on veut mettre comme valeur ajout = Inputbox ("quelle valeur voulez-vous ajouter?", "titre", "entree par défaut") Call chtext.AddNewLine(2) Call chtext.AppendText("ajout") '--> ajoute à chtext le texte contenu dans ajout Call doccb.Save(True,False) '--> on enregistre doccb.SaveOptions = "0" 'on recharge le doc courant Dim unid As String unid = doccb.UniversalId Call uidoc.close() Set doccb = session.CurrentDatabase.GetDocumentByUnid(unid) Call ws.EditDocument(True,doccb)End Sub[%sig%]

Re: transmettre valeur à un champ texte riche par boite de d

MessagePublié: 25 Juil 2003 à 15:12
par clémentine
ooooh Droad, je te baisse les pieds.MERCI!(tu l'as trouvé où ta photo?)

Re: transmettre valeur à un champ texte riche par boite de d

MessagePublié: 25 Juil 2003 à 15:17
par Droad
Pourquoi, j'ai les pieds trop hauts ? (attention, je vais faire un soundley: hi hi hi)[%sig%]

Re: transmettre valeur à un champ texte riche par boite de d

MessagePublié: 25 Juil 2003 à 15:18
par Droad
je comprend plus rien: ça marche ou pas ?[%sig%]

Re: transmettre valeur à un champ texte riche par boite de d

MessagePublié: 25 Juil 2003 à 15:20
par clémentine
ben oui ça marche!thanks a lot :).