AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
18.03.19 - 14:52:00
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 8
| |-+  ND8: Entwicklung (Moderatoren: Axel, Thomas Schulte, koehlerbv)
| | |-+  FindFirstElement(RTELEM_TYPE_TABLE) findet keine Tabellen
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: FindFirstElement(RTELEM_TYPE_TABLE) findet keine Tabellen  (Gelesen 2523 mal)
noeffred
Frischling
*
Offline Offline

Beiträge: 11


« am: 29.04.09 - 16:14:04 »

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?  Ahnungslos

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  Grin

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?
Gespeichert
noeffred
Frischling
*
Offline Offline

Beiträge: 11


« Antworten #1 am: 11.05.09 - 16:29:08 »

Hat da wirklich keiner eine Idee dazu?  Huh
Gespeichert
bredemeier
Frischling
*
Offline Offline

Beiträge: 49


« Antworten #2 am: 24.05.18 - 15:19:25 »

Gibt es hier eigentlich eine Lösung? Habe das gleiche Problem.

Gruß, Volker
Gespeichert
Tode
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6178


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #3 am: 24.05.18 - 16:14:03 »

Du gräbst nicht wirklich einen 9 Jahre alten Thread aus, oder?
Gespeichert

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...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
bredemeier
Frischling
*
Offline Offline

Beiträge: 49


« Antworten #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
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: