Autor Thema: Ansicht mit Formel schliessen  (Gelesen 2171 mal)

Offline Karlo F.

  • Frischling
  • *
  • Beiträge: 44
  • Geschlecht: Männlich
Ansicht mit Formel schliessen
« am: 20.08.14 - 16:06:50 »
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.

Code
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

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Ansicht mit Formel schliessen
« Antwort #1 am: 20.08.14 - 16:28:51 »
Mach es mit Script. Über picklistcollection holst Du Dir das Dokument und öffnest es direkt

Offline Karlo F.

  • Frischling
  • *
  • Beiträge: 44
  • Geschlecht: Männlich
Re: Ansicht mit Formel schliessen
« Antwort #2 am: 20.08.14 - 17:56:24 »
Danke, Peter, für die Antwort.

Ich habe mir gleich die Funktion PickListCollection in der Hilfe angesehen und ein dort bereitgestelltes Beispiel für meine Zwecke abgeändert.

Der Dialog zum auswählen des Dokuments wird mir auch angeboten, aber leider werden ALLE Dokumente angeboten und nicht nur die mit der entsprechenden Kundennummer (S_KDNR). Die Ansicht ist nach der Kundennummer kategorisiert. In der Formel @PickList konnte ich eine entsprechende Kategorie angeben und mir wurden nur die Dokumente mit einer entsprechenden Kategorie (hier die Kundennummer) zur Auswahl angeboten.

Wie kann ich das in LS erreichen ?


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Ansicht mit Formel schliessen
« Antwort #3 am: 20.08.14 - 18:57:52 »
Das funktioniert haarscharf genauso wie in der Formelsprache - der letzte Parameter gibt die anzuzeigende Category einer entsprechenden Ansicht an, und dann werden auch nur die Dokumente innerhalb dieser Category zur Auswahl angeboten.

HTH,
Bernhard

Offline Karlo F.

  • Frischling
  • *
  • Beiträge: 44
  • Geschlecht: Männlich
Re: Ansicht mit Formel schliessen
« Antwort #4 am: 21.08.14 - 13:34:08 »
Jetzt funktionierts. Vielen Dank.

Code
	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.


Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: Ansicht mit Formel schliessen
« Antwort #5 am: 21.08.14 - 13:43:03 »
nimm
Code
db.Server, _
db.FilePath, _
anstatt
Code
"DominoServer", _
"db.nsf", _

Gruß Stefan
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Ansicht mit Formel schliessen
« Antwort #6 am: 21.08.14 - 13:45:42 »
ersetze "DominoServer" durch db.server und "db.nsf" durch db.filepath  (ohne " ")
/edit: cebolina war schneller...

Der Fehler, der eigentlich nicht passieren darf, kommt übrigens, wenn der Benutzer auf "abbrechen" klickt

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Karlo F.

  • Frischling
  • *
  • Beiträge: 44
  • Geschlecht: Männlich
Re: Ansicht mit Formel schliessen
« Antwort #7 am: 21.08.14 - 14:02:56 »
Funktioniert  :) Danke, Stefan und Roland.

Upps, stimmt - ich nehme diese MessageBox raus - bei "Abbrechen" brauchts keine weiter Info an den User. :)


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz