Domino 9 und frühere Versionen > ND9: Entwicklung
Alternative zu uidoc.Copy und uidoc.Paste?
schroederk:
Hallo,
ich habe ein soweit ganz gut funktionierendes Script, dass den Inhalt eines Feldes eines geöffneten (nicht gespeicherten) Dokuments kopiert und in ein Feld einer anderen Form einfügt.
Also im groben:
--- Code: --- uidoc.Gotofield("Body")
Call uidoc.Selectall
Call uidoc.Copy
Set tempdoc = New NotesDocument(db)
tempdoc.Form = "Dummy"
tempdoc.SaveOptions = "0"
Call tempdoc.Save(True, False, True)
Set tempuidoc = ws.Editdocument(True, tempdoc)
tempuidoc.Gotofield("Body")
Call tempuidoc.Paste
--- Ende Code ---
Das Problem ist aber, dass in Einzelfällen der Benutzer vorher schon etwas in die Zwischenablage kopiert hat und der Inhalt mit Ausführen des Sripts verloren geht oder dass ungewollt alter Inhalt aus der Zwischenablage eingefügt wird, wenn das Quell-Feld leer ist (dann wird durch SelectAll und Paste die Zwischenablage nicht gelöscht)
Gibt es daher eine andere Möglichkeit?
Klafu:
Wie wäre es, wenn du mit einer Variable arbeitest? Das sollte doch auch gehen.
Variable = uidoc.FieldGettext("Feld")
und dann
doc.Feld = Variable
Chris
Mitch:
Ich mache auch sowas, allerdings übergebe ich den Inhalt eines Richtextfeldes nach Word.
Beim "uidoc.Copy" kommt ein Fehler wenn nichts markiert ist. Den fange ich ab, so dass ich zumindest nicht bereits in der Zwischenablage vorhandene Daten ins Ziel paste.
Bei erfolgreichem Kopieren sind vorhandene Daten in der Zwischenablage aber weg, da habe ich auch keine Lösung für.
Gruß,
Mitch
schroederk:
--- Zitat von: Klafu am 08.07.15 - 16:16:20 ---Wie wäre es, wenn du mit einer Variable arbeitest? Das sollte doch auch gehen.
Variable = uidoc.FieldGettext("Feld")
und dann
doc.Feld = Variable
Chris
--- Ende Zitat ---
Meinem Verständnis nach bekomme ich mit FieldGettext ja nur den reinen Text. In RichText-Feldern können aber auch Bilder und Anhänge enthalten sein.
Die würden damit verloren gehen. :-\
@Mitch: Das ist ja genau ein Teil des Problems. Wenn das Feld leer ist fange ich auch den Fehler beim Copy ab. Aber damit wird nicht die Zwischenablage geleert und beim anschließenden Paste wird der noch vorhandene Inhalt der Zwischenablage eingefügt.
Ich überlege schon, ob ich eine weitere Dummy-Maske erstelle, nur um die Zwischenablage zwischenzuspeichern und anschließend wiederherzustellen zu können. Aber das könnte ich mir sparen, wenn es eine andere Möglichkeit gäbe, den Inhalt eines RichText-Feldes in eine andere Maske zu übertragen ohne Copy&Paste zu verwenden.
Mitch:
--- Zitat von: schroederk am 09.07.15 - 07:27:41 ---@Mitch: Das ist ja genau ein Teil des Problems. Wenn das Feld leer ist fange ich auch den Fehler beim Copy ab. Aber damit wird nicht die Zwischenablage geleert und beim anschließenden Paste wird der noch vorhandene Inhalt der Zwischenablage eingefügt.
--- Ende Zitat ---
Wenn der Fehler beim Copy geworfen wird, wird natürlich nicht gepastet.
Die Idee mit dem Zwischenspeichern eventuell vorhandenen Inhalts finde ich gar nicht schlecht. Im Idealfall wird der Nutzer die neue Maske gar nicht sehen, da der Prozess so schnell vorbei ist.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln