Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Kadlec am 23.04.03 - 18:03:19

Titel: Speichern verhindern über vergleich zweier Felder funktioniert nicht mehr
Beitrag von: Kadlec am 23.04.03 - 18:03:19
Hallo zusammen.
In einem Dok. möchte ich erzwingen das jede Änderung dokumentiert werden muss.
Das erreiche ich durch 3 Felder:
Feld1: "AnzahlSpeicherungen_N" Typ Zahl , Berechnet
Vorgabe --> @If(@IsNewDoc ;1;AnzahlSpeicherungen_N + @IsDocBeingSaved)
Feld2: "BearbeitungsElemente_N" Typ Zahl , Berechnet
Vorgabe --> @Elements(BearbeitungAm_D)
In das Feld BearbeitungAm_D kommt bei jeder Bearbeitung ein neuer Eintrag hinzu.
Feld3: "ÄnderungsDokumentation_T" Typ Text , Bearbeitbar
Validierung --> TempNoÄnd := @If(@IsNewDoc | AnzahlSpeicherungen_N=BearbeitungsElemente_N);
@If(TempNoÄnd;@Success;@Failure(MSG))

Wird ein Dok. geändert wird es über eine Schaltfläche gespeichert Feld1 wird um eins erhöht und ist damit ungleich zu Feld2.Diese Ungleichheit wird in Feld3 validiert und somit wird verhindert das das Dok. gespeichert werden kann.Man muss über eine andere Schaltfläche dem Feld BearbeitungAm_D einen weiteren Wert zufügen damit erhöht sich auch das Feld BearbeitungsElemente_N um eins somit sind beide Felder gleich es kann gespeichert werden.
Dies hat auch immer wunderbar funktioniert seit heute nicht mehr.
Kann mir jemand sagen warum das so ist???
Felder habe ich schon gelöscht und wieder erstellt.
Titel: Re:Speichern verhindern über vergleich zweier Felder funktioniert nicht mehr
Beitrag von: ata am 24.04.03 - 20:31:21
... wie wird die Berechnung den getriggert?

... hattest du eventuell die Maskeneigenschaft "Felder automatisch aktualisieren" aktiviert - bzw. ist das derzeit aktiviert ???

... oder hattest du im PostRecalc den Trigger ???

... oder im QuerySave... ???

ata

Titel: Re:Speichern verhindern über vergleich zweier Felder funktioniert nicht mehr
Beitrag von: Kadlec am 25.04.03 - 08:42:22
Hallo ata,
funktioniert ganz primitiv nur mit Formelsprache.
In der Maske habe ich im Bearb. Modus eine Schaltfläche "Schließen", diese besteht aus [FileCloseWindow] und [RefreshHideFormulas].Bei einer Änderung im Dok. wird dadurch das Feld der AnzahlSpeicherungen hochgezählt.Durch die ungleichheit der beiden Felder habe ich dann eine andere Schaltfläche "Änderung speichern" zur verfügung.Diese fügt dann in die Bearb. History einen Eintrag zu, zieht der AnzahlSpeicherungen eins ab und speichert das ganze.
Eine scharfe Db arbeitet damit seit 09/00 ohne Probleme.
Das Problem hatte ich schon öffters habe dann immer eine Kopie neu auf den Server gestellt. Wenn ich aber so weitermache klotze ich allein den Server voll.
Titel: Re:Speichern verhindern über vergleich zweier Felder funktioniert nicht mehr
Beitrag von: ata am 25.04.03 - 17:25:41
nimm anstelle des [RefreshHideFormulas] den [ViewRefreshFields] vor deinem [FileCloseWindow] - das berechnet die Felder neu - das bisherige berechnet nur die HideWhenFormeln neu

ata
Titel: Re:Speichern verhindern über vergleich zweier Felder funktioniert nicht mehr
Beitrag von: Kadlec am 25.04.03 - 17:37:14
Hab die Formel geändert.
Funktioniert nicht.
Titel: Re:Speichern verhindern über vergleich zweier Felder funktioniert nicht mehr
Beitrag von: ata am 25.04.03 - 21:44:04
... schick mir das doc mal in abgespeckter Version - manchmal sehe ich etwas erst wenn ich es in der Kralle habe...

ata
Titel: Re:Speichern verhindern über vergleich zweier Felder funktioniert nicht mehr
Beitrag von: Kadlec am 26.04.03 - 19:43:41
Hallo ata,
es ist die selbe db die ich Dir vor ca. 3 Wochen geschickt hatte.
Titel: Re:Speichern verhindern über vergleich zweier Felder funktioniert nicht mehr
Beitrag von: ata am 29.04.03 - 19:31:23
... ich hab die DB leider nicht mehr...

ata
Titel: Re:Speichern verhindern über vergleich zweier Felder funktioniert nicht mehr
Beitrag von: Kadlec am 08.05.03 - 13:21:09
Ich habe mein Problem nun ein wenig eingrenzen können.
Egal ob ich die Validierung positiv oder negativ gestalte das Dok. lässt sich immer speichern.
Also.... wird nicht validiert aber warum ???
Hat da jemand eine Idee??