Examples: Navigator property (NotesRichTextRange - LotusScript®)

This agent gets every paragraph in every cell in the first table of the current document. The agent works within elements by setting up a navigator for the table and for each cell in the table.

Sub Initialize
  Dim session As New NotesSession
  Dim db As NotesDatabase
  Dim dc As NotesDocumentCollection
  Dim doc As NotesDocument
  Dim body As NotesRichTextItem
  Dim rtnavBody As NotesRichTextNavigator
  Dim rtnavTable As NotesRichTextNavigator
  Dim rtnavCell As NotesRichTextNavigator
  Dim rtrangeTable As NotesRichTextRange
  Dim rtrangeCell As NotesRichTextRange
  Dim rtrangePara As NotesRichTextRange
  Dim counter As Integer
  Dim msg As String
  Dim rtnavFlag As Boolean
  Set db = session.CurrentDatabase
  Set dc = db.UnprocessedDocuments
  Set doc = dc.GetFirstDocument
  Set body = doc.GetFirstItem("Body")
  REM Get first table in Body item
  REM Set range and navigator for it
  Set rtnavBody = body.CreateNavigator
  If Not rtnavBody.FindFirstElement(RTELEM_TYPE_TABLE) Then
    Messagebox "Body item does not contain a table,",, _
    "Error"
    Exit Sub
  End If
  Set rtrangeTable = body.CreateRange
  Call rtrangeTable.SetBegin(rtnavBody)
  Call rtrangeTable.SetEnd(rtnavBody)
  Set rtnavTable = rtrangeTable.Navigator
  REM Get each cell in table
  REM Set range and navigator for it
  Set rtrangeCell = body.CreateRange
  Set rtrangePara = body.CreateRange
  Call rtnavTable.FindFirstElement(RTELEM_TYPE_TABLECELL)
  Do
    Call rtrangeCell.SetBegin(rtnavTable)
    Call rtrangeCell.SetEnd(rtnavTable)
    Set rtnavCell = rtrangeCell.Navigator
    msg = ""
    counter = counter + 1
    REM Get each paragraph in cell
    REM Set range and its paragraph text
    rtnavFlag = rtnavCell.FindFirstElement(RTELEM_TYPE_TEXTPARAGRAPH)
    If rtnavFlag Then
      Do
        Call rtrangePara.SetBegin(rtnavCell)
        Call rtrangePara.SetEnd(rtnavCell)
        msg = msg & rtrangePara.TextParagraph & Chr(13)
      Loop While rtnavCell.FindNextElement(RTELEM_TYPE_TEXTPARAGRAPH)
    Else
      msg = "<No text paragraph in cell>"
    End If
    Messagebox msg,, "Cell " & counter
  Loop While rtnavTable.FindNextElement(RTELEM_TYPE_TABLECELL)
End Sub