Ich baue gerade an einer Seminarverwaltung für unsere Personalentwicklung.
Dabei stieß ich auf das Problem, wie ich das Bearbeiten von Dokumenten verhindern kann, wenn diese einen gewissen Status haben. Die Dokumente durchlaufen einen Workflow. Hierbei gibt es zwei exit-points, nach denen die Dokumente nur noch lesenderweise angezeigt werden sollen.
- Antrag auf Weiterbildung wurde abgelehnt
- Antrag hat den WF vollständig durchlaufen
im ersten Fall hat das Feld "rejected" den Wert "1"; der zweite Fall wird durch den Status "3" signalisiert
der Einfachheit halber habe ich ein weiteres StatusFeld "editable" eingebaut ( default = 0) ; dieses Feld wird auf "1" gesetzt, wenn einer der o.a. Fälle eintritt.
Wird nun das Dokument mittels Doppelklich in den EDIT Modus versetzt, so lässt sich das mit
Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
If source.fieldGetText("editable") = "1" Then
Messagebox "Der Vorgang hat den Workflow vollständig durchlaufen und kann nicht mehr bearbeitet werden" , 16 , "Workflowende"
continue = False
End If
End Sub
leicht abfangen.
Was macht man aber, wenn man in Ansichten einen Button "Bearbeiten" hat ??
Normalerweise enthält der Buhtong die Formel "@Command([EditDocument])"
Alle Versuche, das Editieren im Dokument abzufedern verliefen erfolglos. Aber warum kompliziert, wenn es auch einfach geht ...
@If(editable ="1";
@Command([OpenDocument]);
@Command([EditDocument]))
in den Buhtong, und schon wird das Dokument im Lesemodus geöffnet, wenn das Feld "editable" den Wert "1" besitzt. Versucht nun jemand, das Dokument durch Doppelklick in den Bearbeitungsmodus zu versetzen, greift der Script Code im "Querymodechange"-Event der Maske