Hallo,
ich komme an einer Stelle nicht weiter.
Ich poste erstmal den entsprechenden Source:
Der folgende Source wird in einem Aktionsbutton in einer Maske aufgerufen.
Ansicht := "A_HilfsAnsicht";
Titel := "Vorhandene Dokumente für die Kundennummer " + @Text(S_KDNR);
Text := "Wählen sie das gewünschte Dokument";
Spalte := 2;
Kategorie := @Trim(@Text(S_KDNR));
MyUNID := @Text(@PickList([Custom]:[Single]; ""; Ansicht; Titel; Text; Spalte; Kategorie));
@Command([OpenView]; "A_Ansicht");
@Command([OpenDocument]; ""; MyUNID);
Der Befehl @PickList liefert mir eine UniversalID (die steht in der Spalte 2 der Ansicht A_Hilfsansicht) in die Variable MyUNID.
Mit dieser Variablen möchte ich nun das zugehörige Dokument öffnen.
Nach langen lesen (auch hier im Forum) habe ich erkannt, dass dafür eine entsprechende Ansicht geöffnet sein muss, welche das Dokument enthält.
Dazu habe ich dann die Formel @Command([OpenView] ... eingefügt. Das Dokument wird nun auch geöffnet.
Leider habe ich jetzt auch eine Ansicht geöffnet, die ich eigentlich garnicht geöffnet haben möchte.
Einen @Command([CloseView] ... gibts leider nicht.
Daher meine Frage: Wie kann ich diese (unerwünschte) Ansicht wieder schliessen ? (am besten sofort nach dem öffnen des Dokuments)
Oder gibt es eine andere Vorgehensweise ?
Vielen Dank.
Karlo
Jetzt funktionierts. Vielen Dank.
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim aktdoc As NotesDocument
Dim dok As NotesDocument
Dim titel As String
Dim uidoc As NotesUIDocument
Set db = session.CurrentDatabase
Set uidoc = workspace.CurrentDocument
Set aktdoc = uidoc.Document
titel = "Vorhandene Dokumente für die Kundennummer " + Trim$(aktdoc.GetItemValue("S_KDNR")(0))
Set collection = workspace.PickListCollection( _
PICKLIST_CUSTOM, _
False, _
"DominoServer", _
"db.nsf", _
"A_HilfsAnsicht", _
titel, _
"Wählen sie das gewünschte Dokument", _
Trim$(aktdoc.GetItemValue("S_KDNR")(0)) )
If collection.Count = 1 Then
Set dok = collection.GetFirstDocument()
Call workspace.EditDocument(False, dok)
Else
Messagebox "Fehler aufgetreten",, _
"Dieser Fehler darf eigentlich nicht passieren."
End If
Einen kleinen "Schönheitsfehler" gibts aber noch:
Ich hätte gerne, dass immer mit der aktuellen (geöffneten) Datenbank gearbeitet wird - ob das nun lokale Replik ist oder die Datenbank auf dem Server - das sollte egal sein.
Die Angabe des Servers und der Datenbank ist wohl zwingend. Ein Leerstring produziert einen Fehler, der besagt, dass es eben kein Leerstring sein darf.
nimm
db.Server, _
db.FilePath, _
anstatt
"DominoServer", _
"db.nsf", _
Gruß Stefan