Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: DaHias am 03.06.08 - 08:22:05

Titel: Tabelle in RichTextItem aus Vorlage kopieren und Werte einfügen
Beitrag von: DaHias am 03.06.08 - 08:22:05
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

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
Titel: Re: Tabelle in RichTextItem aus Vorlage kopieren und Werte einfügen
Beitrag von: DerAndre am 03.06.08 - 08:28:56
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.
Titel: Re: Tabelle in RichTextItem aus Vorlage kopieren und Werte einfügen
Beitrag von: DaHias am 03.06.08 - 08:48:24
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
Titel: Re: Tabelle in RichTextItem aus Vorlage kopieren und Werte einfügen
Beitrag von: DerAndre am 03.06.08 - 09:00:10
Jepp

Hier ist die Funcion, allerdings nicht das Original von Anton, das finde ich gerade nicht

ReOpen (http://atnotes.de/index.php?topic=32448.0)
Titel: Re: Tabelle in RichTextItem aus Vorlage kopieren und Werte einfügen
Beitrag von: DaHias am 03.06.08 - 09:22:28
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.
Titel: Re: Tabelle in RichTextItem aus Vorlage kopieren und Werte einfügen
Beitrag von: DerAndre am 03.06.08 - 09:43:24
Lies mal diesen Fred (http://atnotes.de/index.php?topic=37545.0)
Titel: Re: Tabelle in RichTextItem aus Vorlage kopieren und Werte einfügen
Beitrag von: DaHias am 05.06.08 - 08:05:51
Ok danke! :) Habe die Tabelle jetzt drin :)

Jetzt noch eine Frage dazu:

Ich habe in der Tabelle im RichText eine Textstelle stehen z.B. "XX1". Ich will jetzt das RichTextItem durchlaufen und nach dieser Stelle suchen. Habe ich sie gefunden soll er mir das "XX1" durch "Programm" ersetzen, ohne aber dabei die Tabelle im RichText zu zerstören.

Ich habe es leider bisher immer nur so geschafft, dass er mir die Tabelle zerlegt hat, weil ich aus dem RichText den unformatierten Text geholt habe.

Wie setze ich im Grunde die "Suchen und Ersetzen"-Funktion um?
Titel: Re: Tabelle in RichTextItem aus Vorlage kopieren und Werte einfügen
Beitrag von: DaHias am 05.06.08 - 08:19:28
Lösung:

Code
Set rtrange = rtitem.CreateRange
count& = rtrange.FindandReplace("XX1", "Test")
Titel: Re: Tabelle in RichTextItem aus Vorlage kopieren und Werte einfügen
Beitrag von: DaHias am 05.06.08 - 09:18:35
Ok wie ich da nun Text ersetzen kann ist klar. Aber wenn ich an der gefundenen Stelle ein RichtTextItem einfügen will? Wie krieg ich denn das hin?
Titel: Re: Tabelle in RichTextItem aus Vorlage kopieren und Werte einfügen
Beitrag von: DaHias am 09.06.08 - 13:22:25
Code
If rtnav.FindFirstString("XX9") Then
  Call rtrange.SetBegin(rtnav)
  Call rtAd.BeginInsert(rtnav, False)
  Call rtAd.AppendRTItem(rtAnforderungen)
End If

Mit diesem Befehl wäre ich also nun an der Stelle, an der ich mein RichTextItem einfügen will. Aber ich bekomme dabei leider eine Fehlermeldung "Method ist not available" in der Zeile, wo er das RichTextItem anhängen soll.
Kann man an dieser Stelle keine RichTextItems anhängen?
Titel: Re: Tabelle in RichTextItem aus Vorlage kopieren und Werte einfügen
Beitrag von: haessler am 22.11.10 - 01:06:59
Richtext in Richtext einzufügen? Ich hab ein Script dafür da.

Das hatte ich bei meiner letzten DNUG-Session als Beispiel vorgestellt:

www.nappz.de/xfl/de/download.htm#rt (http://www.nappz.de/xfl/de/download.htm#rt)

Mit dem Richtextnavigator bin ich ziemlich schnell an die Grenzen des Machbaren gestoßen. Deshalb basiert das Beispiel hier auf DXL-Import/Export.

Bert
Titel: Re: Tabelle in RichTextItem aus Vorlage kopieren und Werte einfügen
Beitrag von: eknori am 22.11.10 - 06:16:08
Zitat
Richtext in Richtext einzufügen? Ich hab ein Script dafür da.
Danke, interessante Sache

Zitat
bin ich ziemlich schnell an die Grenzen des Machbaren gestoßen
Bei Attachments funktioniert es dann aber nicht mehr.