Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Alexis am 20.07.05 - 16:42:30
-
Hallo Forum,
das was $Ref bei Antwortdokumenten schafft, möchte ich bei zwei Dokumenten herstellen, die wie folgt zusammenhängen:
Dokument 1 in DB1 enthält Button zur Erzeugung eines Dokumentes 2 in DB2 (per Script). Felder werden sauber in Dokument 2 übertragen.
Nun möchte ich in Dokument 1 aber einen Link auf das Dokument 2 einbauen, so dass darüber eine Verbindung zwischen beiden hergestellt ist. Dieses soll programmtechnisch im Script angelegt werden, dass das Dokument 2 erzeugt.
Wie stelle ich das an? Hilft mir jemand im Ansatz?
Alexis
-
Übergib an Doc2 die DocumentUNiqueID von Doc1. Dann hast Du die Verbindung und kannst diese zumindest Programmtechnisch nutzen.
Du kannst ansonsten auch einen DocLink auf Doc1 in Doc2 speichern.
-
Hallo,
vielleicht wäre ein mit sich selbst berechnetes(@ThisValue) Richtextfeld in der Maske etwas.
Beim Anlegen des Dok2 mit der Richtextitem-Class(AppendDocLink) in diesem Richtextfeld
den Doc-Link erzeugen.
mfg
Kjeld
-
Ergänzend zu Ingos Beitrag:
AFAIK sollte das mit einem reinen Textfeld (nicht Richtext-Feld) so wie bei $REF funktionieren, wenn man die DocumentUniqueID verwendet und dort reinschreibt.
Siehe hier http://www.atnotes.de/index.php?topic=13984.0 , Kapitel 3.5.
D.h. dadurch sollte für den Anwender ein Doc-Link erscheinen.
-
Hallo Forum,
mein Script funktioniert nicht: den Link, den ich per "AppendDocLink" setzen will erscheint nicht im entsprechenden Dokumentenfeld, das Feld bleibt leer.
Wer ist so nett und checkt meinen Code?
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim uidocNew As NotesUIDocument
Dim docRes As NotesDocument
Dim docBew As NotesDocument
Dim dbbw As NotesDatabase
Dim doc As NotesDocument
Set uidoc = ws.CurrentDocument
Set docRes = uidoc.Document
Set dbbw = New NotesDatabase("", "")
Call dbbw.OpenByReplicaID( "Server”,"ID" )
Set docBew = New NotesDocument(dbbw)
docBew.Form = "2. Datenbank"
Set docBew = New NotesDocument(dbbw)
docBew.Personen = docRes.Capacity
docBew.Raum = docRes.ResourceName
docBew.Datum = docRes.StartDateTime
docBew.Von = docRes.StartDateTime
docBew.Bis = docRes.EndDateTime
Set uidocNew = ws.EditDocument(True, docBew)
Set rtitem = New NotesRichTextItem( docRes, "Link" )
Call rtitem.AppendText("Link to ... --> ")
'Call rtitem.AppendDocLink( dbbw, "Title" )
Call uidocNew.Refresh
End Sub
Alexis
-
Mit einem Refresh wirst Du da nicht weit kommen. Du mußt das Background-Dokument erstmal speichern und dann ein Reopen machen.
Such mal im Forum nach "Reopen", da gabs schon Beiträge mit fertigem Script zu. Glaube Ata hatte das mal gebastelt.
-
Vorausgesetzt Du verwendest R6 kannst Du auch die NotesURL (Property von NotesDocument, ab R6 auch nicht mehr nur für COM verfügbar) des verlinkten Dokumentes in ein Feld wegschreiben.
Dann kannst Du über ein einfaches <a href=... (Pass-Thru HTML, mit der NotesURL als Computed Text dazwischen, und Maskeneigenschaft Render pass through HTML in Notes) den gleichen Effekt erzielen. Noch ein bisschen mit Verbergeformeln und aussagekräftigen Linktexten ausstatten, und die Nutzer werden Dich dafür lieben. ;)
Andreas
-
Hallo Forum,
habe das Problem mit Hilfe der Technote der IBM gelöst (siehe Code). Nur ein Punkt bekomme ich nicht hin. An der ausgewiesenen Stelle im Script möchte ich die Maske im Wokspace bearbeiten können und erst dann den Code fortsetzen. Wie stelle ich das an?
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim uidocNew As NotesUIDocument
Dim docRes As NotesDocument
Dim docBew As NotesDocument
Dim dbbw As NotesDatabase
Dim doc As NotesDocument
Set uidoc = ws.CurrentDocument
Set docRes = uidoc.Document
Set dbbw = New NotesDatabase("", "")
Call dbbw.OpenByReplicaID( "Server","ID" )
Set docBew = New NotesDocument(dbbw)
docBew.Form = "Bewi"
docBew.Personen = docRes.Capacity
docBew.Raum = docRes.ResourceName
docBew.Datum = docRes.StartDateTime
docBew.Von = docRes.StartDateTime
docBew.Bis = docRes.EndDateTime
Set uidocNew = ws.EditDocument(True, docBew)
Set rtitem = New NotesRichTextItem( docRes, "Link" )
Call rtitem.AppendText("Link to Service Order (to change) --> ")
Call rtitem.AppendDocLink( docBew, "" )
docRes.Form = "Reservation"
Call docRes.Save(False,False)
docRes.saveoptions = "0"
Call uidoc.Close
' An dieser Stelle sollte der Workspace mit docBew zum Editieren offen sein
Call ws.EditDocument(True,docRes,False)
Set docRes = uidoc.Document
Dim view As NotesView
Set db = session.CurrentDatabase
Set view = db.GetView("ResByDate")
Call view.Refresh
End Sub
Alexis