Autor Thema: Link zwischen Dokumenten zweier DB herstellen  (Gelesen 1940 mal)

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Link zwischen Dokumenten zweier DB herstellen
« 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
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Driri

  • Gast
Re: Link zwischen Dokumenten zweier DB herstellen
« Antwort #1 am: 20.07.05 - 17:13:47 »
Ü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.

Offline gossifu

  • Senior Mitglied
  • ****
  • Beiträge: 352
  • Geschlecht: Männlich
  • Dummheit schafft Freizeit
Re: Link zwischen Dokumenten zweier DB herstellen
« Antwort #2 am: 20.07.05 - 17:33:28 »
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
Immer lustig und vergnügt, bis der A.... im Sarge liegt. ;-)

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Link zwischen Dokumenten zweier DB herstellen
« Antwort #3 am: 21.07.05 - 00:10:31 »
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.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re: Link zwischen Dokumenten zweier DB herstellen
« Antwort #4 am: 22.07.05 - 13:44:42 »
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
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Driri

  • Gast
Re: Link zwischen Dokumenten zweier DB herstellen
« Antwort #5 am: 22.07.05 - 14:05:45 »
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.

Offline ..Andreas..

  • Junior Mitglied
  • **
  • Beiträge: 60
  • Geschlecht: Männlich
  • Brevity is the soul of wit.
Re: Link zwischen Dokumenten zweier DB herstellen
« Antwort #6 am: 22.07.05 - 14:44:20 »
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

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re: Link zwischen Dokumenten zweier DB herstellen
« Antwort #7 am: 25.07.05 - 13:40:43 »
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
« Letzte Änderung: 25.07.05 - 14:11:23 von Alexis »
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz