Domino 9 und frühere Versionen > ND8: Entwicklung
Maske vorm öffnen wieder schließen
Big768:
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
DAU-in:
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.
koehlerbv:
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
Peter Klett:
Denk auch daran, SaveOptions vor dem Schließen auf 0 zu setzen, damit das Dokument auf keinen Fall gespeichert werden kann.
Glombi:
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
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln