Autor Thema: FindFirstElement(RTELEM_TYPE_TABLE) findet keine Tabellen  (Gelesen 5985 mal)

Offline noeffred

  • Frischling
  • *
  • Beiträge: 11
Servus

ich stehe vor einem Rätsel: ich habe ein Rich Text Feld mit einer Tabelle, die automatisch generiert wird, sofern noch keine vorhanden ist. An diese Tabelle will ich nun bei jedem Speichern eine neue Zeile hinzufügen. Also dachte ich mir, ich suche das Feld, mache einen RichTextNavigator, suche die Tabelle, hänge eine Zeile an und füll die neuen Zellen.
Nun wird aber jedesmal wenn ich das Dokument speichere, eine neue Tabelle eingefügt, da FindFirstElement(RTELEM_TYPE_TABLE) keine Tabelle findet. Wie kann das sein?  :-:

Das AppendTable haut hin, und die neu eingefügte Tabelle funktioniert auch ohne Probleme - aber die bestehende findet das Script nicht.

Bei der Zeile "If Not rtnav.FindFirstElement(RTELEM_TYPE_TABLE)  Then" haben Notes und ich scheinbar andere Ansichten von der Welt  ;D

Hier ist der Code (auf das Wesentliche gekürzt)
Code
Sub Postsave(uidoc As Notesuidocument)
Dim session As New NotesSession
Dim doc As NotesDocument
Dim uiw As New notesuiworkspace
Dim rtitem As Variant
Dim rtnav As NotesRichTextNavigator
Dim workspace As New NotesUIWorkspace
Set doc=uidoc.Document
' get the abbreviated user name
Set uname= New NotesName(session.UserName)
username = uname.Common
' get now and comment
jetzt = Format(Now,"Long Date")
comment  = Inputbox("Bitte geben Sie einen Kommentar zur Revisionskontrolle ein.","Kommentar")
' get the element we write into
Set rtitem = doc.GetFirstItem("doc_revision")
Set rtnav = rtitem.CreateNavigator
' check for existing table, create one if there's none
If Not rtnav.FindFirstElement(RTELEM_TYPE_TABLE)  Then
Call rtitem.AppendTable(1,3)
Call rtnav.FindFirstElement(RTELEM_TYPE_TABLECELL)
Dim richStyle As NotesRichTextStyle
Set richStyle = session.CreateRichTextStyle
richStyle.Bold = True
Call rtitem.AppendStyle(richStyle)
Call rtitem.BeginInsert(rtnav)
Call rtitem.AppendText ("Datum")
Call rtitem.EndInsert
Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
Call rtitem.BeginInsert(rtnav)
Call rtitem.AppendText ( "Benutzer" )
Call rtitem.EndInsert
Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
Call rtitem.BeginInsert(rtnav)
Call rtitem.AppendText ( "Bemerkung" )
Call rtitem.EndInsert
Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
richStyle.Bold = False
Call rtitem.AppendStyle(richStyle)
End If
'
' add a new row to the table
Call rtnav.FindFirstElement(RTELEM_TYPE_TABLE)
Dim table As NotesRichTextTable
Set table = rtnav.GetElement
Call table.AddRow(1)
Dim content(2) As String
content(0)=jetzt
content(1)=username
content(2)=comment
Call rtnav.FindNthElement(RTELEM_TYPE_TABLECELL, table.RowCount*3 - 2) ' finds the last row, the first cell
Forall element In content
Call rtitem.BeginInsert(rtnav)
Call rtitem.AppendText (element)
Call rtitem.EndInsert
Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
End Forall
Call doc.Save(True,True)
End Sub

Das ganze spielt sich nach dem Speichern des Dokuments ab und der Code samt RT Feld ist in einer Teilmaske drinnen - falls das eine Rolle spielt, was ich mir nicht vorstellen kann...

Irgendwo muss ich einen Denkfehler haben oder etwas übersehen haben.

Hat da jemand eine Idee?

Offline noeffred

  • Frischling
  • *
  • Beiträge: 11
Re: FindFirstElement(RTELEM_TYPE_TABLE) findet keine Tabellen
« Antwort #1 am: 11.05.09 - 16:29:08 »
Hat da wirklich keiner eine Idee dazu?  ???

Offline bredemeier

  • Frischling
  • *
  • Beiträge: 49
Re: FindFirstElement(RTELEM_TYPE_TABLE) findet keine Tabellen
« Antwort #2 am: 24.05.18 - 15:19:25 »
Gibt es hier eigentlich eine Lösung? Habe das gleiche Problem.

Gruß, Volker

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.896
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: FindFirstElement(RTELEM_TYPE_TABLE) findet keine Tabellen
« Antwort #3 am: 24.05.18 - 16:14:03 »
Du gräbst nicht wirklich einen 9 Jahre alten Thread aus, oder?
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline bredemeier

  • Frischling
  • *
  • Beiträge: 49
Re: FindFirstElement(RTELEM_TYPE_TABLE) findet keine Tabellen
« Antwort #4 am: 24.05.18 - 16:33:25 »
Moin Tode,

es hat ja sonst niemand drauf geantwortet.

Ich versuche eine per Script erstellte Tabelle in einem Richtext-Feld nach erneutem Öffnen des Dokumentes zu aktualisieren, aber nach
Set rtitem = doc.GetFirstItem(rtfeld)
Set rtnav = rtitem.CreateNavigator
Call rtnav.FindFirstElement(RTELEM_TYPE_TABLECELL)      
Call rti.BeginInsert(rtnav)

aber bekomme immer die Meldung "Element or Navigator is invalid"

Erstelle ich eine neue Tabelle und führe ein Reopen aus, kann ich auf die Tabelle zugreifen, aber nach Schließen und erneuten Öffnen nicht.

Gruß, Volker

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz