Domino 9 und frühere Versionen > Entwicklung

SaveOptions bei Änderung eines Felds ändern

(1/2) > >>

Jérôme:
Hallihallo!

Ich habe folgendes Problem, und ich hoffe, Ihr könnt mir helfen...

In meinem Dokument ist es notwendig, dass das Feld SaveOptions beim Öffnen des Dokuments auf 0 gesetzt ist.

Wie kann ich es hier anstellen, dass dieses Feld, sobald im Dokument ein Feld geändert wird, auf 1 gesetzt wird?

Vielen Dank und viele Grüße
- Jérôme

Glombi:
Hi,
Du könntest im QuerySave mittels Script prüfen, ob sich Werte geändert haben. Falls ja, setze das Feld = "". Ausserdem würde ich
Im PostSave dann das Feld wieder = "0" setzen und das Backenddokument nochmals speichern.

Andreas

Jérôme:
Hui, das ging ja schnell!  ;D

Wie prüfe ich denn, ob Felder geändert sind?

Markus Henke:
Hallo,

warum machst Du das so? Ich sehe den Sinn nicht. Wenn Du die SaveOptions auf "0" setz, dann wird nicht gespeichert. Wenn Du ein Feld änderst, dann soll doch gespeichert werden. Warum setzt du das Flag denn dann?

Zu Deiner Frage:
Du musst im PostOpen alle Feldinhalte in ein Array einlesen. Im QuerySave überprüfst Du dann, ob die Feldinhalte mit denen im Array übereinstimmen. Wenn das nicht der Fall ist, dann hat sich was geändert. Das ganze ist allerdings nicht sehr einfach zu bauen. Ich habe es erst verstanden, nachdem unser Externer das programmiert hat.  ;)

Gruß
Markus

Jérôme:
Danke für den Tipp!

Zur Erklärung:

Es handelt sich um Dokumente in einer Arbeitszeitverwaltung. Das bedeutet: Mitglieder der Personalverwaltung (Rolle [PV]) dürfen Dokumente editieren, "normale" Benutzer dürfen dies nicht.

Damit Benutzer aber ihre aktuelle geleistete Arbeitszeit betrachten können (Arbeitszeitbeginn bis jetzt), muss ich das Dokument editierbar lassen - die Arbeitszeitende-Felder werden dann mit der aktuellen Uhrzeit gefüllt und die Arbeitszeiten werden temporär berechnet (als hätte der Mitarbeiter gerade auf "Gehen" geklickt). Damit diese Werte aber nicht gespeichert werden, setze ich die SaveOptions auf 0.

Wenn ein "normaler" Benutzer diese Werte ändert, ist das auch kein Problem - er darf das ja eh nicht, und durch die SaveOptions=0 wird nichts gespeichert.

Ändert aber ein Personalverwalter das Dokument, dann sollen die Änderungen ggf. schon gespeichert werden können. Hat er das Dokument aber nur zur Ansicht der aktuellen Arbeitszeit geöffnet, so stört die Abfrage am Ende, ob er das Dokument speichern möchte.

Deswegen soll es ungefähr so funktionieren:


Wenn ( User  = PV) Dann
{
  Wenn (Dokument geändert) Dann
  {
     SaveOptions = 1
    Dokument Speichern
  }
  Ansonsten
  {
    SaveOptions = 0
  }
}
Ansonsten
{
  SaveOptions = 0
}


Ich kann mich nicht so sehr gut ausdrücken... Ich hoffe, es war trotzdem halbwegs verständlich. Da mich das Thema so interessiert, würde ich es aber noch differenzierter darlegen ;)

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln