Domino 9 und frühere Versionen > ND6: Entwicklung
Eigentlich trivial: Abbruch Button
sslneve:
Hallo zusammen,
ich habe ein recht grosses Formular mit einigen Sections, die je nach Bearbeitungs-Status versteckt oder sichtbar sind. Im Zuge der Bearbeitung bzw. der Neuanlegens wird das Dokument an verschiedenen Stellen gespeichert (per Formelsprache). Wenn jemand die Bearbeitung abbrechen will, bevor ein Speicherpunkt aufgetreten ist, dann ist das kein Problem. Wenn jedoch schon während der Bearbeitung gespeichert wurde, so ist ein Abbruch zwar möglich, allerdings existiert das (nicht gültige) Dokument dann schon.
Meine Überlegungen gingen bisher in die Richtung: Einen Button "Abbruch" ins Formular einbauen und diesen per Formel oder LS das Dokument (wenn es schon gespeichert wurde) bei gewünschtem Abbruch löschen lassen. Probleme hierbei: wie entscheide ich, ob es ein Abbruch beim Neuanlegen war oder nur ein Abbruch beim nachträglichen Editieren (hier darf natürlich nix gelöscht werden!). Zudem ist "richtiges" Löschen mit HardDeleteDocument nur aus einem Agenten möglich (den ich ja nach richtiger Entscheidung aus vorgenanntem Action Button aufrufen könnte). Nur wie sag ich dem Agenten, welches Dokument er (für den User möglichst unbemerkt) löschen soll? Anm.: Ich möchte ungern ein neues Feld einführen, das einen Speicherstatus o.ä. darstellt (hierüber könnte evtl. das Entscheidungsproblem gelöst werden).
.... oder sind meine Konstrukte möglicherweise völlig daneben. Ich bin mir sogar fast sicher, daß es hierfür eine simple Lösung geben muss.
Vielen Dank!
Markus
Mandalor:
du könntest mit @created herausfinden, wann das doc angelegt wurde, wenn es zeitnah angelegt wurde, dann wird es wahrscheinlich noch nicht geschlossen wurden sein.
@isnewdoc greift hier nicht, da es nur true liefert, solange es noch nicht gespeichert wurde.
Ein feld, in welches du erst beim schließen des Documents mit einem Wert füllst wäre die einzig saubere Lösung die mir einfällt.
(--> von der 1. Überlegung rate ich ab)
Thomas Schulte:
ein Dokument das beim Anlegen mehrfach gespeichert wird ist per se in der Definition schon krank. Egal wie ich das erklären will da ist bei den Grundüberlegungen schon etwas falsch gelaufen.
Wenn du allerdings einen Workflow meinst bei dem verschiedene Benutzer das Dokument hintereinander weg bearbeiten, dann ist die Lösung eigentlich einfach. Du baust ein Feld "Abgebrochen" ein und setzt das Feld beim Beenden des Prozesses mit einem definierten Flag. Zusätzlich kannst du dann auch noch Autoren und Leser Felder einführen mit denen du den Zugriff auf dieses Dokument effektiv beschränkst. Damit bleibt der Prozess als solcher erkennbar, die Tatsache das er abgebrochen wurde auch und du machst keine Design Kopfstände.
dirk_2909:
Merke Dir doch im QueryOpen der Maske, ob es ein Neues Dokument ist:
if IiNewDoc Then ....
Wenn es ein Neues Dokument ist, kannst Du im PostOpen ein Feld in der Maske mit einem bestimmten Wert setzen:
call uidoc.FieldSetText( "fld_NewDoc" ; "1" )
Call uidoc.Refresh
Je nach Feldwert kannst Du dann den Abbruch-Button, der die neuen Formulare zum Löschen markiert, anzeigen bzw. Verbergen.
Dirk
sslneve:
Hallo,
das Design ist nicht von mir ... ich "darf" nur dran rumbasteln. So ein Flag habe ich nun, allerdings weiß ich immer noch nicht, wie ich das Dokument wieder weg kriege, wenn es zwischendurch schon gespeichert wurde und dann abgebrochen wird. Andererseits dürfen dadurch nicht frühere Dokumente durch Abbruch bei erneutem Bearbeiten gelöscht werden ...
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln