動態替換RTF域中的文字

用LOTUS開發C/S發麪的程序時,經常會有要求發送帶格式的郵件功能,而且郵件中的一些內容是動態的;最好的解決辦法是增加一個配置表單,把帶格式的郵件內容(如表格,背景色)等配置上,動態內容可以用########等符號代替,然後在發送郵件時把RTF域中的符號用實際的內容替換。

替換RTF域中特點符號的代碼如下:

 Dim docTemplate As NotesDocument
 Dim docNotice As NotesDocument
 Dim ContentItem As NotesItem
 Dim rtmBody As NotesRichTextItem, rtrange As NotesRichTextRange, rtstyle As NotesRichTextStyle, rtnav As NotesRichTextNavigator

   Set ContentItem = docTemplate.GetFirstItem("Body")
   If ( ContentItem.Type = RICHTEXT ) Then
    Set rtmBody = New NotesRichTextItem(docNotice,"Body")
    Call rtmBody.AppendRTItem(ContentItem)
    Set rtrange = rtmBody.CreateRange
    Set rtstyle = rtrange.Style
    Call rtmBody.AppendStyle(rtstyle)
    
   '***************************************
    Set rtnav = rtmBody.CreateNavigator
    If rtnav.FindFirstElement(RTELEM_TYPE_TEXTRUN) Then
     Set rtrange = rtmBody.CreateRange
     Call rtrange.SetBegin(rtnav)
     text = rtrange.TextRun
     While Instr(1,text,"######") = 0 And rtnav.FindNextElement(RTELEM_TYPE_TEXTRUN)
      Call rtrange.SetBegin(rtnav)
      text = rtrange.TextRun
     Wend
    End If
    
    If Not (Instr(1,text,"######") = 0) Then
     tempstr=searchdoc.CurAccount(0)
     Call rtrange.FindandReplace("######",tempstr)
    End If

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章