Doch das geht schon so wie Peter sagt. Probier mal folgendes, dies ist zwar nicht dein Ausgangsproblem, aber vielleicht fällt dann der Groschen:
1) in deine Ansicht machst du eine (versteckte) Spalte welche sich auf
Subject + "|" + @DocumentUniqueID()
berechnet. Ich gehe mal davon aus, dass im Feld "Subject" ein aussagekräftiger, schöner Name drin steht und eine Zuordnung über die UNID reicht. (UNIDs können sich ändern, wenn ein Dokument kopiert wird und das andere gelöscht wird.). Alternativ kannst du hier auch ein eindeutiges Schlüsselfeld angeben, dann würde ich aber das Ganze in Script umsetzen, da es da performanter ist.
2) in dein Dokument machst du dann ein Feld (Dialogliste) mit Namen "RaumID", in die Auswahlformel schreibst du einen @DBcolumn, der die in 1.) berechnete Spalte zurückliefert oder gibst die Ansicht direkt an (bei ersterem tritt ggf. ein 32K Problem auf)
WICHTIG: ImFeld muss auf "Allow Keyword Synonyms"aktiviert sein.
3.) Dann machst du einen Test: Bei Auswahl eines Raums zeigt das Feld den Inhalt von "Subject" an. Über die Feldeigenschaften siehst du aber, dass die UNID drin steht.
4.) Nun kannst du im ganzen Dokument berechnete Felder mit @GetDocField(RaumID;"Feldname") platzieren und auf beliebige Felder im Raum-Dokument zugreifen und dein Problem sollte gelöst sein.
Wenn du wie in 1) schon erwähnt allerdings einen eindeutigen Schlüssel anstatt der UNID verwenden willst, dann müsstest du hierfür jedesmal einen DB-Lookup machen, was sich negativ auf die Performance auswirkt. Da würde ich dann Script verwenden.
eine Minimal-Scriptlösung könnte wie folgt aussehen (Achtung nicht getestet, hab vorsichtshaber aber mal einen Errorhandler eingebaut!)
Sub Queryrecalc(Source As Notesuidocument, Continue As Variant)
On Error Goto handle
If False Then
handle: Msgbox "Fehler " & Error & " in Zeile " & Erl
Exit Sub
End If
' --------- Errorhandler ende ---------
Dim myDoc As NotesDocument ' aktuelles Dokument
Dim myView As NotesView
Dim db As NotesDatabase
Dim raumDoc As NotesDocument ' das Dokument aus dem die Werte übernommen werden sollten
Set myDoc = Source.Document
Set db = myDoc.ParentDatabase
If myDoc.RaumID(0) = "" Then Exit Sub ' wenn kein Raum gewäht, dann Ende
Set myView = db.GetView("viewRessourcen")
Set raumDoc = myView.GetDocumentByKey( myDoc.RaumID(0), True)
' Alternativ, wenn UNID verwendet wird: Set raumDoc = db.GetDocumentByUNID(myDoc.RaumID(0))
'--------- Das Gröbste ist geschafft, nun müssen nur noch die Felder von raumDoc in myDoc kopiert werden:
myDoc.Raum_Ort = parentDoc.Ort
myDoc.Raum_Raum= parentDoc.Raum
End Sub
Gruß
Roland