Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Katja_S am 06.10.05 - 11:13:25

Titel: Aktualisierung berechnetes Feld
Beitrag von: Katja_S am 06.10.05 - 11:13:25
Hallo zusammen,

ich habe folgendes Problem: in einer Maske habe ich ein berechnetes Feld, welches die Summe aus anderen Feldern enthalten soll. Aber aus irgendeinen Grund wird dieses Feld nicht aktualisiert. Befindet sich das Dokument im Lese-Modus, so steht 0 drin. Sobald ich es in den Edit-Modus versetze, wird die Summe richtig berechnet. Beim Schließen allerdings wird das nicht gespeichert und beim nochmaligen Öffnen im Lese-Modus steht wieder die 0 drin. Sollte nicht  normalerweise beim Editieren des Dokumentes auch dieses berechnete Feld neu berechnet und auch gespeichert werden? Auch ein manuelles Aktualisieren über F9 funktioniert nicht. Wo könnte das Problem liegen?

Danke und Gruß
Katja
Titel: Re: Aktualisierung berechnetes Feld
Beitrag von: Axel am 06.10.05 - 11:21:40
Hi,

ist das Feld vielleicht vom Typ "Berechnet zur Anzeige" ?


Axel
Titel: Re: Aktualisierung berechnetes Feld
Beitrag von: Katja_S am 06.10.05 - 11:35:00
Nein, es ist ein normales Feld vom Typ "Berechnet"...Das ist ja das komische...Das müsste doch aktualisiert und gespeichert werden, wenn ich in einer Funktion doc.Save() aufrufe, oder nicht?
Titel: Re: Aktualisierung berechnetes Feld
Beitrag von: klaussal am 06.10.05 - 11:38:23
Steht da was im Vorgabewert ?
Titel: Re: Aktualisierung berechnetes Feld
Beitrag von: Katja_S am 06.10.05 - 11:44:03
In dem Vorgabewert steht dann die Formel, die die Summe berechnen soll, also:

Code
_zahl1 := @If(VacTotal1 != "";@TextToNumber(VacTotal1);0);
_zahl2 := @If(VacTotal3 != "";@TextToNumber(VacTotal3);0);
_zahl3 := @If(VacTotal4 != "";@TextToNumber(VacTotal4);0);
_zahl4 := @If(VacTotal5 != "";@TextToNumber(VacTotal5);0);

 _zahl1 + _zahl2 + _zahl3 + _zahl4

Sollte doch funktionieren...ich mein, im Editier-Modus stimmt ja dann die Summe...
Titel: Re: Aktualisierung berechnetes Feld
Beitrag von: Mandalor am 06.10.05 - 12:47:29
Ist das Feld wirklich berechnet, denn ein Berechnetes Feld hat keinen Vorgabewert, sondern eine Formel.
Es muss Berechnet und weder erechnet zu anzeig, no berechent beim Anlegen sein!

Setzt du von einer anderen Formel aus den Inhalt des Feldes neu? --> beim Speichern zum beispiel?
Titel: Re: Aktualisierung berechnetes Feld
Beitrag von: Gandhi am 06.10.05 - 12:52:45
wenn Du doc.save aufrufst wird das Hintergrunddokument gespeichert. Das muss nicht zwangsläufig die Werde des Frontenddokumentes enthalten.
Besser wäre daher hier ein uidoc.save - dann wird garantiert das Frontend gespeichert.
Titel: Re: Aktualisierung berechnetes Feld
Beitrag von: Katja_S am 06.10.05 - 13:24:39
Also als Vorgabewert ist die Formel nicht eingetragen, sondern ganz  normal als Formel halt. Und das Feld ist wirklich nur "berechnet". Ich setzt das auch in keiner anderen Funktion neu.
Titel: Re: Aktualisierung berechnetes Feld
Beitrag von: Gandhi am 06.10.05 - 13:26:26
Speichere die Maske doch mal mit File - Save und schau, ob das Feld dann drin bleibt.
Titel: Re: Aktualisierung berechnetes Feld
Beitrag von: Katja_S am 06.10.05 - 13:51:01
Ich hab jetzt nochmals das Dokument geöffnet und bin in den Bearbeiten-Modus...Bin dann mit der Maus über ein paar Felder (habe aber nix geändert) und beim Schließen hat mich Notes dann gefragt, ob ich die Änderungen speichern will. Hab dann gespeichert und da hats dann auch den Summenwert von dem "berechnet"-Feld übernommen. Aber warum aktualisiert er das Feld nicht, wenn ich normal doc.Save mache? Oder sollte ich zuvor das Feld einfach mit einem Wert belegen? Wäre ja auch sinnlos, denn dann bräuchte ich ja kein "Berechnet"-Feld, oder?
Titel: Re: Aktualisierung berechnetes Feld
Beitrag von: Gandhi am 06.10.05 - 13:53:07
lies mein vorletztes Posting.
Du speichest das Background Dokument- das ist nicht identisch mit dem Frontend Dokument.
Willst Du das Frontenddokument speichern musst Du die save methode der NotesUIDocument Klasse verwenden - nicht die des Notesdocument.
Titel: Re: Aktualisierung berechnetes Feld
Beitrag von: Axel am 06.10.05 - 14:08:10
Aber warum aktualisiert er das Feld nicht, wenn ich normal doc.Save mache? Oder sollte ich zuvor das Feld einfach mit einem Wert belegen?


Versuch's mal mit einem ComputeWithForm vor dem Speichern. Damit sollten auch die berechneten Felder aktualisiert werden.

Also so:

...
Call doc.ComputeWithForm(False, False)
Call doc.Save(True, False)
...


Axel
Titel: Re: Aktualisierung berechnetes Feld
Beitrag von: Katja_S am 06.10.05 - 14:13:01
Hab das mit dem ComputeWithForm versucht und es hat funktioniert. Vielen Dank, Axel. Danach hab ich gesucht...;-)