Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Aladdin Sane am 11.04.05 - 14:36:14
-
Hallo,
ich möchte gerne aus einer Ansicht das ausgewählte Dokument ermitteln und damit "irgendwas" machen.
Das Dokument ermittel ich mit folgendem Code in einer Aktion der Ansicht:
Dim s As New NotesSession
Dim uiwk As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc_Chosen As NotesDocument
Set db_Current = s.CurrentDatabase
Set collection = db_Current.UnprocessedDocuments
Set doc_chosen = collection.GetFirstDocument()
Funktioniert astrein.
Aber ich möchte das Ganze nicht über eine Aktion in der Ansicht abwickeln,
sondern über einen Rechteck-Hotspot, der sich auf einer Seite in einem Rahmen
einer Ramengruppe befindet - die Ansicht befindet sich in einem anderen Rahmen.
Diese Konstellation führt dazu, das das Dokument doc_chosen immer leer ist - auch
wenn ein dokument ausgewähl ist.
Scheinbar arbeitet mein Code nur innerhalb des Rahmens...
Weiß jemand, wie ich auf das ausgewählte Dokument zugreifen kann?
Gruß
pASCAL
-
Hallo,
ich weiß nicht, ob Du es einfach vergessen hast zu posten, aber db_current ist nicht deklariert.
Zum eigentlichen Problem : Versuch doch mal mit
Call notesUIWorkspace.SetTargetFrame( frame$ )
den Frame vorher auszuwählen.
-
Meinen code habe ich jetzt erweitert. "FrameVier" ist der Name des Rahmens.
Dim s As New NotesSession
Dim uiwk As New NotesUIWorkspace
Call uiwk.SetTargetFrame("FrameView" )
Dim uidoc As NotesUIDocument
Dim doc_Chosen As NotesDocument
Dim db_Current As NotesDatabase
Set db_Current = s.CurrentDatabase
Set collection = db_Current.UnprocessedDocuments
Set doc_chosen = collection.GetFirstDocument()
Leider ist doc_chosen immer noch leer.
-
Die DocumentCollection ist auch nicht deklariert.
Setz am besten Option Declare, dann bekommst Du da wenigstens schon mal eine Warnung.
Ansonsten versuch mal, die DocumentCollection über die NotesUIView zu füllen.
-
Okay, ich probiere das mal aus.
Mal kurz zu Option Declare:
Die Warnungen bekomme ich nur, wenn ich Option Declare unter "Options" direkt für
den Hotspot setzte - nicht aber wenn ich es unter Globals für die gesammte Seite deklariere...
-
Ist richtig. Ich bin jetzt überfragt, ob es so etwas wie ein globales Option Declare gibt.
-
Habe eben eine Diskussion für globales Option Declare gefunden.
Diese Option wirkt scheinbar nur für einzelne Module...
Zurück zum Thema:
ich generiere mir also eine Collection aus der NotesUIView:
...
Set view_Current = uiwk.CurrentView
Set collection = uiwk.CurrentView.Documents
--> Collection ist leer.
Laut Doku werden nur Dokumente übernommen, die von einem Event der NotesUIView
berührt werden - ich weiß leider nicht, was das bedeutet.
pASCAL
-
Also das riecht für mich nach einem "Fokus-Problem".
Was ich noch versuchen würde ist:
NotesSession.DocumentContext
Wobei ich auch da ein Fokus-Problem befürchte. Ist aber einen Versuch Wert.
Aber generell: Wie soll Seite 1 wissen, dass ein Dokument in Seite x ausgewählt ist? Es sind schließlich komplexe Framesets möglich. Vorzuziehen sind daher immer Aktions-Buttons -- wo möglich.
-
NotesSession.DocumentContext führt auch zu diesem Fehler.
Na gut - dann setzte ich eben wieder Aktion-Buttons in der Ansicht ein.
vielen Dank für die Beteiligung!
Gruß
pASCAL