Developers sometimes need to retrieve cell values within a table in a Lotus Notes rich-text field (RTF). The following LotusScript code will display the values in each cell within the body of any Lotus Notes mail document.
GetElementCount is used to count different types of RichTextItems in a field. This example uses the Table type.
Sub Initialize
Dim ws As New NotesUIWorkspace
Dim s As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim maildoc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim rtnav As NotesRichTextNavigator
Set db=s.CurrentDatabase
Set dc=db.UnprocessedDocuments
If dc.Count>1 Then
Msgbox "Please select a single document", MB_OK,
"Travel HelpDesk"
Continue=False
End
Else
Set maildoc=dc.GetFirstDocument()
Set rtitem=maildoc.GetFirstItem("Body")
Set rtnav=rtitem.CreateNavigator
count = GetElementCount(rtnav, RTELEM_TYPE_TABLE)
'msg$ = msg$ & "Tables:" & Chr(9) & Chr(9) & count% & Chr(10)
'Messagebox msg$,, maildoc.Subject(0)
If count=0 Then
Messagebox "Body item does not contain a table,",, _
"Error"
Exit Sub
End If
For k=1 To count
If rtnav.FindNthElement(RTELEM_TYPE_TABLE,k) Then
Dim rttab As NotesRichTextTable
Set rttab=rtnav.GetElement
Dim rtrange As NotesRichTextRange
Set rtrange=rtitem.CreateRange
If k=1 Then
Call rtnav.FindFirstElement(RTELEM_TYPE_TABLECELL)
Else
Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
End If
firstFlag = True
For i& = 1 To rttab.RowCount
For j& = 1 To rttab.ColumnCount
If Not firstFlag Then
Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
Else
firstFlag = False
End If
Call rtrange.SetBegin(rtnav)
Messagebox rtrange.TextParagraph,, _
"Row " & i& & _
", Column " & j&
Next
Next
End If
Next
End If
End Sub
Function GetElementCount(rtnav As NotesRichTextNavigator,
eType As Integer) As Integer
GetElementCount = 0
If rtnav.FindFirstElement(eType) Then
Do
GetElementCount = GetElementCount + 1
Loop While rtnav.FindNextElement()
End If
End Function
本文介绍了一段LotusScript代码,该代码能够从LotusNotes邮件文档的富文本字段中检索表格数据,并显示每个单元格的值。通过使用GetElementCount函数计算表格元素的数量,再遍历表格中的每一行和每一列来实现。
987

被折叠的 条评论
为什么被折叠?



