Rich Text - Feldinhalte via LotusScript kopieren

  • Hallo,


    ich muß aus einer Maske A RichText-Feldinhalte (z.B. Bilder) in eine Maske B kopieren.


    Das wollte ich so tun:


    Variable1=uidoc.FieldGetText(FeldMaskeA)


    und dann


    DokumentMaskeB.FeldMaskeB = Variable1


    Funktioniert Supi - aber nur mit Text... Wie bekomme ich denn die Anhänge kopiert? Ich habe leider nirgendwo einen Ansatz gefunden. Vielleicht hat ja jemand eine zündende Idee.


    Vielen Dank im Voraus!
    Jörg.

  • Ich habe gerade keine Hilfe zur Hand, aber müsste so nach dem Motto hier funktioniert:


    set itemRT = uidoc.document.getfirstitem("DeinRichTextItem")


    call itemRT.copytodocument(DocumentB, "ItemName")
    call DocumentB.save(true, false)

  • Ich bekomme es einfach nicht hin. Das neue Dokument öffnet zwar, aber der Text UND der Anhang fehlen :-x .


    Das ist mein Script:
    Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim db As NotesDatabase
    Dim itemRT As NotesItem

    Set uidoc = ws.CurrentDocument
    Set db = session.CurrentDatabase
    Set doc = New NotesDocument ( db )


    'Maske des Dokumentes, in die die Daten geschrieben werden sollen
    doc.Form="DOK"


    Call ws.EditDocument(True, doc)


    'hole aus dem geöffneten Dokument die Inhalte aus dem Feld description
    Set itemRT = uidoc.document.getfirstitem("description")


    'schreibe den Inhalt in das Feld description_dcm in ein Dokument das mitt der Maske DOK erstellt wurde
    Call itemRT.copyitemtodocument(doc, "description_dcm")



    Call doc.Save( True, True )

    End Sub


    Wo könnte der Fehler liegen???

  • Ist das uidoc eigentlich gespeichert oder ein ganz neues Dokument, welches editiert wird?


    Was sagt der Debugger denn zu:


    Set itemRT = uidoc.document.getfirstitem("description")


    Ist in itemRT "was" drin?


    Call ws.EditDocument(False, doc)
    Call doc.Save( True, True )


    Die solltest du mal austauschen, denn zuerst speichern und dann mit editdocument öffnen.


    Wobei der erste Parameter von EditDocument besser auf true steht, dann gehts im Edit Modus auf. Dann sollten auch die "Ecken" da sein.

  • Zitat

    Wobei der erste Parameter von EditDocument besser auf true steht, dann gehts im Edit Modus auf. Dann sollten auch die "Ecken" da sein.


    Hab ich gerade gemerkt und auch in meinem Text oben korrigiert.


    Zitat

    Die solltest du mal austauschen, denn zuerst speichern und dann mit editdocument öffnen.


    Getauscht habe ich auch.


    Ja, im Debugger finde ich unter ITEMRT -> EMBEDDEDOBJECTS -> (0) meine Datei und unter VALUES meinen Text. Das scheint zu stimmen.


    Das uidoc ist bereits vorhanden.

  • Hi,


    Ich stelle einfach mal die Frage.


    Wie soll dass gehen, wenn in ein uidoc zum editieren geoeffnet ist(geoeffnet wurde) - also Frontend - und ueber Backendaktionen dieses Dokument manipuliert wird.


    Wo und wann soll dass uidoc denn das alles mitbekommen, wenn es nicht neu geoeffnet wird?



    Andreas

  • Rech hat er! Versuch doch :



    Set itemRT = uidoc.document.getfirstitem("description")
    Call itemRT.copyitemtodocument(doc, "description_dcm")
    Call doc.Save( True, True )
    Call ws.EditDocument(True, doc)



    Das Call ws.EditDocument(True, doc) gehört am Schluss :)

  • Zitat

    Ist das uidoc eigentlich gespeichert oder ein ganz neues Dokument, welches editiert wird?


    Das war genau meine Frage bzgl. des uidocs, ob das überhaupt jemals gespeichert wurde. Wenn nicht, dann ist eh schicht im Schacht.


    Das Skript hier funktioniert einwandfrei unter der Voraussetzung, dass das erste Dokument einmalig gespeichert ist.


    Dim session As New NotesSession
    Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim db As NotesDatabase
    Dim itemRT As NotesItem

    Set uidoc = ws.CurrentDocument
    Set db = session.CurrentDatabase

    Set itemRT = uidoc.document.getfirstitem("Body")
    Set doc = New NotesDocument ( db )
    doc.Form="MaskeB"
    Call itemRT.copyitemtodocument(doc, "Body")
    Call doc.Save( True, True )
    Call ws.EditDocument(True, doc)