Autor Thema: Tabelle lesen  (Gelesen 999 mal)

Jürgen Schomann

  • Gast
Tabelle lesen
« am: 27.06.22 - 15:22:33 »

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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz