Das Notes Forum

Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: tfrenz am 10.08.16 - 16:13:15

Titel: Mehrere Dokumenten Links erzeugen
Beitrag von: tfrenz am 10.08.16 - 16:13:15
Hallo, ich will in ein neues Dokument mehrere Dokumenten Links kopieren, und zwar über einen Button.
DIe Auswahl der Dokumte mache im über
    ant = ws.Prompt(7, "Auswahl Systeme", "Für welche Systeme soll die Dokumentation gelten?", arrSystemNamen, arrValues)
Wobei in arrSystemNamen die aktuellen Systemnamen sind, und in arrValues alle verfügbaren Systemnamen.
Dann wird per For-Schleife alle ant (= gewählten System) durchlaufen, und mit
   Set DocCol = vw.Getalldocumentsbykey(strSystemName, True)
   Set Doc = DocCol.Getfirstdocument()
Das Dokument geholt.
Nun soll mit
   Call rtSystemLink.Appenddoclink(Doc, "System: " + arrSystemNamen(x))
der Dokumenten Link hinzugefügt werden.
Im UIDoc ist aber das RichTextFeld leer.
Habt ihr ne Lösung?

Danke
Thomas
Titel: Re: Mehrere Dokumenten Links erzeugen
Beitrag von: umi am 10.08.16 - 16:27:53
Moin

a) Warum verwendest Du Prompt und nicht PickListCollections ?

b) Das hinzufügen wird wohl nur über das Backend funktionieren. Schon mal ein NotesUiDocument.reload() probiert?
Titel: Re: Mehrere Dokumenten Links erzeugen
Beitrag von: Gutierrez am 18.08.16 - 11:19:14
Moin tfrenz,

ich erledige Manipulationen eines RT-Felds immer mit der _undokumentierten_ Funktion notesUIDocument.ImportItem(notesDocument, fieldName$).

Ich hab zwei Varianten in meinem Code gefunden:

Einmal kannst du ein temp. Dokument mit einem RT-Feld erzeugen, dass du dann im Backend manipulierst und speicherst(!). Anschließend setzt du den Cursor in deinem ws.CurrentDocument in das RT-Feld und benutzt o.g. Funktion.
Anschließend solltest du das temp. Dokument wieder löschen.

Ist nicht so toll, da der Benutzer Dokumente erstellen und löschen müssen darf. Ebenfalls musst du ggf. das Dokument sperren, wenn für die Datenbank aktiviert.

Zweite Methode, die ich gefunden habe ist, du erzeugst in dem ws.CurrentDocument.Document (also dem aktuellen Backend-Dokument) ein temp. RT-Item, das du dann manipulierst und mit der o.g. Funktion in ein anderes RT-Feld über das Frontend-Dokument einfügst.

Die o.g. Funktion wird übrigens in der Standard-Mail-Schablone im Bereich der Signaturen verwendet (ob das in R9 immer noch so ist - weiß ich gerade nicht).

Beste Grüße