Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: buzi am 12.04.16 - 12:25:26

Titel: ComposeWithReference in Lotus Scriptsprache?
Beitrag von: buzi am 12.04.16 - 12:25:26
Hallo zusammen,

ich möchte in einem Script zum geöffneten Dokument ein Antwortdokument erstellen. Gibt es eine Funktion in Lotus Script, die der Formel ComposeWithReference entspricht? Oder muss man "zu Fuß" das Body-Feld des Antwortdokuments mit dem Link auf das übergeordnete Dokument befüllen?

Danke und Grüße
Titel: Re: ComposeWithReference in Lotus Scriptsprache?
Beitrag von: RunRevilo am 12.04.16 - 15:28:29
Hallo,

es gibt die Methode MakeResponse in der NotesDocument Klasse.

Hier der Auszug aus der Notes Hilfe:

MakeResponse method
Makes one document a response to another document. The two documents must be in the same database.

Defined in
NotesDocument

Syntax
Call notesDocument.MakeResponse( document )

Parameters
document

A NotesDocument. The document to which notesDocument becomes a response. If you specify Nothing, this method generates an error.

Usage
You must call Save after this method if you want to save the change you have made.


Hoffe das hilft dir weiter.

Oliver

Titel: Re: ComposeWithReference in Lotus Scriptsprache?
Beitrag von: Thomas Schulte am 12.04.16 - 15:40:54
MakeResponse ist für diesen Fall nicht Zielführend. Es macht ein Dokument nur zum Child eines anderen Dokumentes.  Du wirst das zu Fuß machen müssen wenn du den Link im Body haben willst. Es geht allerdings auch anders.
Dazu brauchst du ein berechnetes TextFeld in deinem Basis Dokument. @documentUniqueId  und einen Platz auf deinem neuen Dokument wo du das anzeigen möchtest.
Titel: Re: ComposeWithReference in Lotus Scriptsprache?
Beitrag von: buzi am 13.04.16 - 10:20:59
Danke für die Antworten! Mit Hilfe des Eintrags im Best Practice Teil dieses Forums habe ich die gewünschte Lösung hin bekommen.

At Notes Best Practices / Das Arbeiten mit Haupt- und Antwort-Dokumenten

Maßgeblich war die Ersetzung des $Ref-Feldes
Code
		Call antwortDoc.RemoveItem("$Ref")
		Call antwortDoc.MakeResponse(currentDocument)

Denn den Teil für das Body-Feld hatte ich schon:
Code
		Call antwortDoc.RemoveItem("Body") 
		Set rtitem = antwortDoc.CreateRichTextItem("Body")
		Call rtitem.AppendDocLink(currentDocument, "")

Noch eine Frage: Braucht man das Body-Feld überhaupt?

Und noch was: Zeigt man die Antwort-Dokumente in einer eingebetteten Ansicht im Hauptdokument an, so werden diese beim Erstellen mittels Formelsprache (ComposeWithReference) sofort in der Ansicht angezeigt.  Werden die Antwortdokumente per Lotus Script erzeugt, wie bei mir jetzt, so werden sie erst nach erneutem Öffnen des Hauptdokuments in der eingebetteten Ansicht angezeigt. Warum?
Titel: Re: ComposeWithReference in Lotus Scriptsprache?
Beitrag von: jBubbleBoy am 13.04.16 - 17:22:19
Im RT-Feld befindet sich der Doc-Link und wird über die Maske angezeigt.
Das Feld brauchst du.

Dein Ansichtsproblem löst du durch ein Refresh, mir fehlt jetzt der Kontext wie ihr Dokumente erstellt/ändert. In der Regel läuft es auf ein NotesView merken im Initialize-Ereignis und ein NotesView.Refresh im Close-Ereignis hinaus.