Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: v_haderer am 29.10.12 - 13:59:08

Titel: renderToRTItem an definierter Stelle im Feld
Beitrag von: v_haderer am 29.10.12 - 13:59:08
Hallo Zusammen!
Ich möchte gerne an einer definierten Stelle in einem RTF (via Platzhalter) den Inhalt eines Dokumentes (tmpDoc) einfügen.
Prinzipiell funktioniert folgender Befehl ja auch ->   Call tmpdoc.renderToRTItem(RTitem)  jedoch werden die Objekte des Dokuments tmpdoc immer am Ende meines RTFs eingefügt.
Nun versuche ich schon einige Zeit mich mit NotesRichTextNavigator bzw NotesRichTextRange hinzutricksen...leider ohne Erfolg  >:( ->


          platzhalter = ("[[" & DesElem & "]]")
      
      Set rtnav = rtitem.CreateNavigator
      rc = rtnav.FindFirstString (platzhalter)      
      
      If rc Then
         Set rtrange = rtitem.CreateRange
         Call rtrange.SetBegin(rtnav)
         Call rtrange.SetEnd(rtnav)
         Call rtnav.SetPosition (rtrange)
         Call rtitem.BeginInsert (rtrange, False)
         
         
         rtitem.AddNewline 1               
         Call tmpdoc.renderToRTItem(RTitem)               

         rtitem.AddNewline 1               
         Call rtitem.EndInsert            
         Call rtitem.Update      
      End If


Fehlermeldung rednerToRTItem 4507: First finish insert!
Wenn ich den Befehl nach dem EndInsert ausführe,...werden meine Objekte wieder am Ende des RTFs eingefügt und ich eigentlich nix erreicht.
Könnte mir bitte irgendjemand sagen wo genau ich meinen Denkfehler hab bzw wie ich "mich" im RTF richtig positionieren kann damit renderToRTItem funktioniert?!  ???

vielen herzlichen Dank
Viktor
Titel: Re: renderToRTItem an definierter Stelle im Feld
Beitrag von: Tode am 29.10.12 - 14:44:40
RenderToRTItem GEHT NICHT an einer bestimmten Stelle. Das zu erreichen, was Du willst, geht über verschiedene Wege, aber immer mit recht hohem Aufwand.
Eine Möglichkeit ist der DXL- Export, eine andere die Benutzung der API- Funktionen, wieder eine andere die Verwendung eines Temp- Dokumentes, das man für Nanosekunden im Frontend zeigt und per Zwischenablage befüllt (copy & paste), um es dann sofort wieder zu schliessen. Und noch eine wäre, erst das Zeug VOR der Textstelle in ein neues Feld zu rendern, dann Dein renderToRTItem und dann den Rest anhängen.

Wie gesagt: Alles (leider) high sophisticated Zeug...