Domino 9 und frühere Versionen > ND8: Entwicklung
DocLink aus Zwischenspeicher einfügen
buzi:
Hallo,
wie kann ich per Lotus Script auf den Zwischenspeicher zugreifen? Der User kopiert sich ein Dokument in den Zwischenspeicher und möchte es dann an anderer Stelle per Button in ein (Rich-)Textfeld einfügen lassen. Ich weiß es klingt umständlich aber sie wollen es so. Die Frage ist, wie ich auf das Dokument im Zwischenspeicher zugreifen kann ich denke den Rest krieg ich hin.
DANKE!!
Keydins:
Du möchtest in dem Zusammenhang mit
Call notesUIDocument.Paste
arbeiten.
Gruß
Dirk
buzi:
Danke für den Tip. Ich krieg die Fehlermeldung das Dokument sei nicht gespeichert, ein Save vorher bringt aber auch nichts....
Der Arbeitsablauf geht weiter. Ist der DocLink in das Richtext-Feld eingefügt (momentan manuell STRG+V), muss er mit dem heutigen Datum versehen in ein anderes Richtext-Feld kopiert werden. Muss ich dazu den Inhalt des RT-Felds auslesen, und den Link als Link ins andere RT-Feld kopieren oder geht das direkt, den ganzen Inhalt zu kopieren? Sorry - Der Umgang mit Richtext Feldern fällt mir schwer.
Keydins:
Der Code ist quasi direkt aus der NotesHilfe (paar Zeilen rausgenommen und direkt das Zielfeld angegeben)
--- Code: ---Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Call uidoc.GotoField ("RTFeld")
Call uidoc.Paste
End Sub
--- Ende Code ---
Funktioniert mit allen möglichen Inhalten in der Zwischenablage: Text, NotesLinks, die ich mir über den Rechsklickdialog "Als Dokumentenlink kopieren" erstelle, Screenshots u.s.w.
Da hat sich mein Posting mit deinem Edit überschnitten :-)
Ebenfalls aus der Hilfe:
--- Zitat ---Rich text items are an exception. Modifications made to rich-text items in the back-end document do not appear in the front-end until the document is closed and reopened.
--- Ende Zitat ---
Also Speichern, Schließen, Öffnen und dann weiter mit der nächsten Kopieraktion.
Alternativ kannst du das 2. Feld aber auch direkt befüllen, denn der Link ist ja noch in der Zwischenablage. Ausgeehnd von dem Beispiel einfach Call uidoc.FieldAppendText ("RTFeld", " - " & Today) am Ende anhängen und schon ist das Tagesdatum hinter dem Link.
Gruß
Dirk
buzi:
Es geht jetzt (fast) gut. In dem RichText Feld möchte ich mehrere solcher Einträge speichern können in der Form
DOCLINK - 01.01.2015
DOCLINK - 02.02.2015
...
Mein Code dafür fummelt im Frontend und im Backend herum weil ich den Paste()-Befehl im Frontend mache, das Einfügen der neuen Zeile aber im Backend. Und das nur, weil ich keine entsprechenden Funktionen fand. Derzeit sieht das Ergebnis so aus:
DOCLINK DOCLINK
Es werden also die Änderungen im Backend gar nicht übernommen. Was fehlt mir?
Sub InsertLink()
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim rti As NotesRichTextItem
Dim nav As NotesRichTextNavigator
Dim docLinkItem As NotesRichTextDocLink
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document
' paste doc link to rich text field
Call uidoc.GotoField ("rtField")
Call uidoc.Paste
Call uidoc.Save()
' add date to link and new line on top to rich text field
Set rti = doc.Getfirstitem("rtField")
Set nav = rti.Createnavigator()
Set docLinkItem = nav.GetFirstElement(5)
Call rti.BeginInsert(docLinkItem, True) ' insert date after first doc link
Call rti.Appendtext(" - " & Today)
Call rti.EndInsert()
Call rti.BeginInsert(docLinkItem, False) ' insert newline before first doc link
Call rti.Addnewline(1)
Call rti.EndInsert()
Call doc.Save(True, False, False)
Call uidoc.Close(True)
Call workspace.EditDocument(True)
End Sub
Also das Problem ist eigentlich die neue Zeile einzufügen. Kriege ich das auch ohne Backend hin?
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln