Domino 9 und frühere Versionen > ND6: Entwicklung
Tabelle in RichTextItem aus Vorlage kopieren und Werte einfügen
DaHias:
Hallo zusammen,
Ich habe aktuell ein Thema bei dem ich in einem NotesRichTextItem eine Tabelle benötige und diese dann noch an bestimmten Stellen befüllt werden muss. D.h. ich habe eine 2-spaltige Vorlage, bei der auf der linken Seite immer die gleichen Titel stehen (z.B. ID). Auf der rechten Seite muss ich eben jetzt, je nach aktuellem Datensatz, die Daten reinschreiben.
Das ganze soll später als Agent im Hintergrund laufen. Ich habe dazu schon etwas Code ausprobiert:
--- Code: ---Sub Click(Source As Button)
Dim s As New NotesSession
Dim db As Notesdatabase
Dim Doc As Notesdocument
Dim rt As NotesRichTextItem
Dim viewTB As NotesView
Dim rtTB As NotesRichTextItem
Dim docTB As Notesdocument
Dim rtnav As NotesRichTextNavigator
Dim rttable As NotesRichTextTable
Set db = s.CurrentDatabase
Set doc = db.CreateDocument
doc.Form = "SB" 'Legt Form fest
Call doc.CreateRichTextItem("Body")
Set rt=doc.getFirstItem("Body")
'Greift auf die Textbausteine zu und holt sich den entsprechenden (in diesem Fall ein RichText-Feld mit einer Tablle (nur einer Tabelle da ist sonst nichts anderes)
Set viewTB=db.GetView("Textbausteine")
Set docTB=viewTB.GetDocumentByKey("SB-Test")
Set rtTB=docTB.GetFirstItem("Text")
Call rt.AppendRTItem(rtTB)
Set rtnav = rt.CreateNavigator 'Navigator um durch die einzelnen Zellen der Tabelle laufen zu können - Aber genau hier gibts Probleme! Er erstellt mir an dieser Stelle keinen Navigator (zumindest nicht im Debugger sichtbar)
Set rttable = rtnav.GetFirstElement(RTELEM_TYPE_TABLE) 'damit scheitert er auch an dieser Stelle, was ich aber unbedingt brauche um auf einzelne Zellen zugreifen zu können
If rttable Is Nothing Then
Msgbox "Keine Tabelle enthalten"
End If
Call doc.Save(True, False)
End Sub
--- Ende Code ---
Ist daran etwas falsch? oder gibt es gar eine andere Lösung für das Problem?
Ich bin für Hilfe sehr dankbar!
Grüße,
Mathias
DerAndre:
Wenn Du jetzt noch Dein Problem schildern würdest wäre das nett.
P.S. RTF sind böseböseböse >:D
Wichtig zu wissen ist, das RTF erst nach dem speichern und einem Re-Open, es gibt da eine sehr schöne Funktion von ata - Anton Tauscher , weiß, das es ein RTF ist.
DaHias:
Mein Problem ist genau das, dass (wie in dem Code vllt. nicht sehr übersichtlich beschrieben) dieser Befehl "Set rtnav = rt.CreateNavigator " nicht funktioniert. Ich sehe im Debugger nach diesem Befehl nicht, dass rtnav irgendwie befüllt wäre. Im Grunde checkt er eigentlich ned, dass er ein RichTextItem ist - genau wie du meintest speicher - reopen - und kann mir deshalb auch nicht die Tabelle liefern zum navigieren.
Ich brauche im Grunde einfach eine Tabelle die ich variabel befüllen kann. Normalerweise wird diese Tabelle manuell befüllt, aber das soll jetzt teilweise auch automatisch passieren eben durch den Agenten.
Erst nach dem Speichern und re-open? Hm... mal probieren
DerAndre:
Jepp
Hier ist die Funcion, allerdings nicht das Original von Anton, das finde ich gerade nicht
ReOpen
DaHias:
Hm bringt leider auch nichts. Ich krieg dann (wie im Code eingebaut) die Meldung "Keine Tabelle enthalten". Aber wenn ich mir das Feld anschaue is da definitiv eine Tabelle drin, ich mein ich seh die ja. Auch nach manuellem Schließen und wieder öffnen bringt er mir bei der Abfrage ob in dem RichText-Feld eine Tabelle drin ist die Meldung, dass keine enthalten ist.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln