Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Big768 am 19.11.12 - 21:26:14

Titel: Maske vorm öffnen wieder schließen
Beitrag von: Big768 am 19.11.12 - 21:26:14
Liebe Noteskolleginnen und -kollegen,

ich habe folgendes Problem:

Ich habe eine Anwendung geschrieben, in der jeder Benutzer über eine Maske ein neues Dokument öffnen kann. Das klappt auch so weit.

Nun musste ich feststellen, dass doch nicht alle Benutzer ein neues Dokument öffnen sollen. Ob der Benutzer das soll oder nicht, ermittle ich in Postopen. Im Postopen kann ich dann aber nicht mehr das öffnen des Dokuments verhindern. Der Befehl "Call doc.close" erzeugt eine Fehlermeldung "Illegal use of Property".

Habt Ihr eine Idee, wie ich die Öffnung des Dokuments dann noch verhindern kann?

Vielen Dank im voraus für Eure Hilfe.

Johann
Titel: Re: Maske vorm öffnen wieder schließen
Beitrag von: DAU-in am 19.11.12 - 22:04:18
Als was hast du 'doc' deklariert?
Als Notesdocument oder als Notesuidocument?

'Close' ist eine Methode von Notesuidocument.

P.S.: noch etwas klugscheissen: du schließt nicht die Maske, sondern das Dokument.
Titel: Re: Maske vorm öffnen wieder schließen
Beitrag von: koehlerbv am 19.11.12 - 23:08:01
Nö, Anita - geschlossen wird tatsächlich die Maske. NotesDocument ist ein Backend-Object (on-disk oder in-memory) und kann nicht "geschlossen", sondern nur "vernichtet" werden.
NotesUIDocument hängt immer an der Maske, und die ist es dann auch, die geschlossen wird und den visuellen Bezug zum Backend zerstört.

Ansonsten liegst Du ganz bestimmt hundertprozentig richtig - was anderes kann Johann da kaum falsch gemacht haben.

Bernhard
Titel: Re: Maske vorm öffnen wieder schließen
Beitrag von: Peter Klett am 20.11.12 - 07:46:25
Denk auch daran, SaveOptions vor dem Schließen auf 0 zu setzen, damit das Dokument auf keinen Fall gespeichert werden kann.
Titel: Re: Maske vorm öffnen wieder schließen
Beitrag von: Glombi am 20.11.12 - 08:07:50
1. Frage:
Wie wird denn bestimmt, ob ein User ein neues Dokument erstellen darf oder nicht?
Wenn es einen bestimmten Benutzerkreis gibt, dann erstelle einfach eine Rolle in der ACL und ordne dieser Rolle die entsprechenden Gruppen oder Personen aus der ACL zu. Dann kannst Du in den Maskeneigenschaften einstellen, welche Rolle neue Dokumente mit der Maske erstellen dürfen.
Dort kann man natürlich auch direkt die User und Gruppen auswählen, ich arbeite aber lieber mit Rollen.

2. Frage:
Wenn es unbedingt programmiert werden muss. Warum muss es im Postopen sein? Geht nicht auch das Queryopen? Dort könnte man mit
Continue = false
direkt das Öffnen unterbinden.

Andreas
Titel: Re: Maske vorm öffnen wieder schließen
Beitrag von: Big768 am 22.11.12 - 04:49:15
Erstmal allen vielen Dank für die Antworten.

@Glombi:
Zu Frage 1:
Die Berechtigung einen neues Dokument ist nicht vom Benutzerkreis abhängig. Es ist mir nur wichtig, das der Benutzer nicht zwei Dokumente gleichzeitig öffnet. Deshalb prüfe ich nun im Queryopen, ob dies der Fall ist. Wenn "ja", wird die Maske gleich wieder geschlossen.

Zu Frage 2:
Vielen Dank. Klappt super.