Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: ArcTan am 02.08.05 - 10:49:32
-
Hallo,
ich suche nach einer Möglichkeit, über einen Action Button in einer Ansicht ein neues Dokument zu erzeugen, in dessen Body-Feld (ist ein RTF-Feld) ein Doclink auf das Dokument hinterlegt wird, das beim Anklicken des Action-Buttons markiert war. Habe dazu folgenden Scriptcode probiert:
Sub Click(Source As Button)
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim rtitem As notesrichtextitem
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
Set uidoc= workspace.ComposeDocument( "", "", "eintrag" )
Set rtitem = New NotesRichTextItem( uidoc.Document, "body" )
Call rtitem.AppendDocLink( doc, "Link auf Vorgänger" )
End Sub
Ein neues Dokument wird angelegt, allerdings (es wäre zu schön gewesen...) erscheint im Feld "body" nicht der Doclink auf "doc".
Gehts das überhaupt, was ich vorhabe? Und wenn ja, wäre dankbar für eine Idee, wie.
Gruß
ArcTan
-
Du musst das Dokument erst im Backend anlegen, dort auch das RTI und dort den DocLink generieren - und das Dokument dann speichern. Dann kannst Du es für das FrontEnd öffnen.
Bernhard
-
Hi Bernhard,
danke für Deinen Tipp. So funktioniert es.
Nur, sollte sich der User nach dem Klicken des Action-Buttons dazu entscheiden, das Dokument (das ja für ihn wie "neu erstellt" aussieht) doch nicht anlegen zu wollen, so muss es wieder gelöscht werden. Das abzufangen (ohne dass er extra eine Hinweisbox bekommt) dürfte schwierig sein, oder?
Gruß
ArcTan
-
Wenn Du Notes 6.x einsetzt und das Dokument neu erstellst, dann brauchst Du es nicht zu speichern.
Wenn das Dokument dann geschlossen wird, ohne das der User etwas geändert hat, dann kommt auch keine Abfrage zum Speichern.
-
Das scheint bei mir nicht zu funktionieren.
Ohne dass ich das Backend-Dokument abspeichere wird unter Notes 6.5.1 der Doclink nicht im neuen Dokument angezeigt.
Ich verwende nun folgenden Code:
Sub Click(Source As Button)
Dim session As New NotesSession
Dim uidoc As NotesUIDocument
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim rtitem As notesrichtextitem
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
Set newdoc = New NotesDocument ( db )
newdoc.form = "eintrag"
Set rtitem = New NotesRichTextItem( newdoc, "followup" )
Call rtitem.AppendDocLink( doc, "Link auf Vorgänger" )
Call newdoc.Save( True, True )
Dim workspace As New NotesUIWorkspace
Call workspace.EditDocument(True, newdoc)
End Sub
-
Hi,
versuch's mal so:
...
Set newdoc = New NotesDocument ( db )
newdoc.form = "eintrag"
Set rtitem = New NotesRichTextItem( newdoc, "followup" )
Call rtitem.AppendDocLink( doc, "Link auf Vorgänger" )
Call newdoc.Save(True,False) 'Temp. Speichern des Backend-Doc. damit RTF-Feld angezeigt wird.
Dim workspace As New NotesUIWorkspace
Call uidoc = workspace.EditDocument(True, newdoc) 'Dokument im Frontend öffnen
Call uidoc.Refresh(True)
Call newdoc.Remove(True) 'Das Dokument, das im Backend erstellt wurde, löschen
Axel
-
Klasse, funktioniert :)
Auf die Idee wäre ich ja nicht gekommen...
Mit der kleinen Verbesserung in der Zeile
Call uidoc = workspace.EditDocument(True, newdoc) 'Dokument im Frontend öffnen
aus dem "Call" ein "Set" zu machen, läufts.
Vielen Dank
Gruß
ArcTan
-
Sorry, war ein Tippfehler :-\
Axel