Petite astuce pour insérer du texte au début d'un NotesRichTextItem contenant déja des informations.
En cherchant dans la doc, on trouve les méthodes BeginInsert et EndInsert pour se positionner avant un élément précis. Dans ce cas il faut connaitre le type de l'élément (attachment, texte ...).
Quand on ne connait pas le type, le mieux c'est de recréer un nouveau RichTextItem (newItem), d'y mettre son texte puis d'y ajouter le RichTextItem existant (oldItem). Ainsi votre texte se trouve avant. Ensuite il faut supprimer l'item de départ (oldItem) puis le re-créer avec le contenu du nouvel Item (newItem) contenant les informations dans l'ordre.
Petit exemple pratique. Lorsqu'on créer une réponse à un mail avec historique et que l'on souhaite insérer du texte dans la réponse juste au dessus de l'ancien message :
- Code : Tout sélectionner
Set docMail = doc.CreateReplyMessage(False)
docMail.To = "toto@tata.fr"
' On récupere le contenu du mail de réponse, contenant l'ancien message (historique)
Set rt = docMail.GetFirstItem("Body")
' On créer notre nouvel item temporaire
Set rtNew = New NotesRichTextItem(docMail, "Body2")
' On y ajoute le texte
rtNew.AppendText("Message de réponse automatique ...blablabla ...")
rtNew.AddNewLine(3)
' puis on y ajoute l'ancien item contenant l'historique du mail précédent
Call rtNew.AppendRTItem(rt)
' On re-créer l'item body avec le contenu du mail a envoyer (notre texte + l'historique en dessous)
Call rt.remove()
Set rt = New NotesrichTextItem(docMail, "Body")
Call rt.AppendRTItem(rtNew)
' On supprime l'item créé temporairement
Call rtNew.remove()
' ...et on envoie
call docMail.send(true)
Cordialement,
::Sylvain::