Ich habe zum Test folgenden LotusScript-Agenten zum Lesen einer Tabelle in einem Rich Text-Feld
Das Rich Text-Feld enthält zum Test nur eine Tabelle mit einer Zeile und einer Spalte.
Sub Initialize
Dim session As New NotesSession
Dim dbThis As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim rtitemBody 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
On Error GoTo GeneralError
Set dbThis = session.CurrentDatabase
Set dc = dbThis.UnprocessedDocuments
Set doc = dc.GetFirstDocument
If doc Is Nothing Then
MsgBox "Kein Dokument"
Exit Sub
End If
Set rtitemBody = doc.GetFirstItem("Body")
Set rtrangeTable = rtitemBody.CreateRange
Set rtrangeCell = rtitemBody.CreateRange
Set rtrangePara = rtitemBody.CreateRange
Set rtnavBody = rtitemBody.CreateNavigator
If Not rtnavBody.FindFirstElement(RTELEM_TYPE_TABLE) Then
MsgBox "Keine Tabelle"
Exit Sub
End If
Call rtrangeTable.SetBegin(rtnavBody)
Call rtrangeTable.SetEnd(rtnavBody)
Set rtnavTable = rtrangeTable.Navigator
If Not rtnavTable.FindFirstElement(RTELEM_TYPE_TABLECELL) Then
MsgBox "Keine Zelle"
Exit Sub
End If
Call rtrangeCell.SetBegin(rtnavTable)
Call rtrangeCell.SetEnd(rtnavTable)
Set rtnavCell = rtrangeCell.Navigator
If Not rtnavCell.FindFirstElement(RTELEM_TYPE_TEXTPARAGRAPH) Then
MsgBox "Kein Paragraph"
Exit Sub
End If
Call rtrangePara.SetBegin(rtnavCell)
Call rtrangePara.SetEnd(rtnavCell)
MsgBox rtrangePara.TextParagraph
Exit Sub
GeneralError:
MsgBox "Text: " & Error$ & Chr(10) & "Code: " & Err & Chr(10) & "Zeile: " & Erl,,"Fehler"
Exit Sub
End Sub
Wenn ich im Rich Text-Feld nur diese Tabelle habe wird der Inhalt des 1. Paragraphen in der 1. Zelle richtig gefunden.
z. B. Zelle enthält Text 'a'
Wenn ich aber direkt über der Tabelle noch Text stehen habe wird der 1. Paragraph nicht mehr gefunden (s. Code oben, Meldung 'Kein Paragraph')
Habe ich aber z. B. 2 Zeilen direkt über der Tabelle wird der 1. Paragraph wieder gefunden.
Es geht immer nur um die 1. Zelle in der 1. Zeile alle weiteren Zellen werden richtig verarbeitet.
Gibt es dafür eine Ursache bzw. eine Lösung?
Gruß Jürgen