LOTUSSCRIPT/COM/OLE CLASSES
Example: Working with tables in LotusScript classes
1. This agent displays the number of columns and rows for all the tables in the Body item of the current document.
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Dim dc As NotesDocumentCollection
Set dc = db.UnprocessedDocuments
Dim doc As NotesDocument
Set doc = dc.GetFirstDocument
Dim rti As NotesRichTextItem
Set rti = doc.GetFirstItem("Body")
Dim rtnav As NotesRichTextNavigator
Set rtnav = rti.CreateNavigator
If Not rtnav.FindFirstElement(RTELEM_TYPE_TABLE) Then
Messagebox "No tables in this document,",, "No tables"
Exit Sub
End If
Dim rtt As NotesRichTextTable
i = 0
Do
Set rtt = rtnav.GetElement
i = i + 1
Messagebox "Column count = " & rtt.ColumnCount & Chr(13) & _
"Row count = " & rtt.RowCount,, "Table " & i
Loop While rtnav.FindNextElement
End Sub
2. This agent finds the first table in the Body item of the current document, finds all the cells in the table, and finds all the paragraphs in each cell.
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim body As NotesRichTextItem
Dim rtnav As NotesRichTextNavigator
Dim rtt As NotesRichTextTable
Dim rtRangeTable As NotesRichTextRange
Dim rtRangeCell As NotesRichTextRange
Dim rtRangePara As NotesRichTextRange
Dim rtNavTable As NotesRichTextNavigator
Dim rtNavCell As NotesRichTextNavigator
Dim cellCounter As Integer
Dim msg As String
Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument
Set body = doc.GetFirstItem("Body")
REM Find first table in Body item
Set rtnav = body.CreateNavigator
If Not rtnav.FindFirstElement(RTELEM_TYPE_TABLE) Then
Messagebox "Body item does not contain a table,",, _
"Error"
Exit Sub
End If
REM Set up range and navigator for table
Set rtRangeTable = body.CreateRange
Call rtRangeTable.SetBegin(rtnav)
Call rtRangeTable.SetEnd(rtnav)
Set rtNavTable = rtRangeTable.Navigator
REM Find cells in table
Set rtRangeCell = body.CreateRange
Set rtRangePara = body.CreateRange
cellCounter = 0
Call rtNavTable.FindFirstElement(RTELEM_TYPE_TABLECELL)
Do
msg = ""
cellCounter = cellCounter + 1
REM Set up range and navigator for cell
Call rtRangeCell.SetBegin(rtNavTable)
Call rtRangeCell.SetEnd(rtNavTable)
Set rtNavCell = rtRangeCell.Navigator
REM Find paragraphs in cell
Call rtNavCell.FindFirstElement(RTELEM_TYPE_TEXTPARAGRAPH)
Do
Call rtRangePara.SetBegin(rtNavCell)
msg = msg & rtRangePara.TextParagraph & Chr(13)
Loop While rtNavCell.FindNextElement(RTELEM_TYPE_TEXTPARAGRAPH)
Messagebox msg,, "Cell " & cellCounter
Loop While rtNavTable.FindNextElement(RTELEM_TYPE_TABLECELL)
End Sub
See Also
Working with tables in LotusScript classes
Glossary
Feedback on
Help
or
Product Usability
?
Help on Help
All Help Contents
Glossary