Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Pareidolie am 13.09.06 - 14:09:04
-
Hallo ihr :D
Ich habe folgendes Problem. Und zwar habe ich einen Button kreiert, der ein Dokument speichern soll. Bevor er das tut, soll jedoch das Feld Status einen neuen Wert erhalten. Der Text sieht wie folgt aus:
@SetField("Status";"true");
@Command([FileSave]);
Das Problem ist, dass nur das erste Kommando ausgeführt wird, d.h. das Dokument wird nicht gespeichert. Wenn ich nämlich das Dokument schließen möchte, werde ich gefragt, ob ich die Änderungen speichern möchte.
Wenn ich nun abbreche und nochmals auf den Speichern-Button klicke, kommt die Abfrage nicht. Ich müsste also immer zweimal auf den Button klicken, damit alles funktioniert.
Woran könnte das liegen?
Liebe Grüße
Nadine
-
...d.h. das Dokument wird nicht gespeichert.
Woran siehst Du das ? Hast Du dir mal eine Ansicht gebaut, die nur diese Docs anzeigt ?
-
Wird im Querysave irgendwas gemacht? Vielleicht ein Feld in Abhängigkeit vom Status gesetzt?
-
Hi ihr :)
@klauss: ich sehe es daran, dass wenn ich das Dokument danach schließen möchte, ich eine Abfrage bekomme, ob ich das Dokument speichern möchte.
@glombi: nein, da steht nichts weiter drin. Es ist so, dass dieses Status Feld gesetzt wird und daraufhin in einem anderen Feld entschieden wird, ob dieses aktualisiert wird, oder nicht...
Danke für eure schnelle Antwort!
-
Und wenn du es mal mit dem Befehl
FIELD Status := "true" ;
probierst ?
-
Hallo Klafu,
danke für den Tipp, aber leider hat sich nichts an der Situation geändert!
Wird denn da nur ein Befehl ausgeführt? Kann man die irgendwie verknüpfen?? ???
Liebe Grüße
-
NEin, der Befehl füllt nur das Feld "Status"mit dem Inhalt: true
FIELD Status := "true" ;
@Command([FileSave])
Gruß
P.S bei mir Funktioniert es so
-
Also bei mir wird das Feld Status auch auf den Wert gesetzt. Das Problem ist nur, wenn ich den Button Speichern drücke und danach den Button Schliessen, dann werde ich gefragt, ob ich Änderungen am Dokument speichern möchte. Diese Abfrage würde nicht kommen, wenn der Befehl @Command([FileSave]) korrekt ausgeführt wird.
Wenn ich nämlich nur @Command([FileSave]) hinschreibe ohne die Zeile mit dem Statusfeld, dann kommt die Abfrage, ob ich die Änderungen speichern möchte nicht.
Es gibt also irgendwie Probleme dabei, dass er nicht beide Zeilen richtig ausführt, sondern immer nur die erste.
-
Achso
Entschuldige, dann hab ich dich gerade falsch verstanden.
Und wenn du zusätzlich noch das commando
@Command([CloseWindow)];
in den Button unter das FileSave setzt ?
Dann müsste sich das Fenster nach dem speichern automatisch schließen
Gruß
-
Hi,
dieses Problem bei der Formelsprache gibt es schon seit immer.
Es ist ein Timing Problem so das der Client (im Frontend), durch die Feldänderung nicht mitbekommt, das das Dokument durch [FileSave] im Backend gesichtert wurde. Daher kommt die Abfrage obwohl das Dokument gespeichert worden ist.
Dafür folgenden Workaround
FIELD Status:=....;
@Command([FileSave])
FIELD SaveOptions:="0";
@command([FileCloseWindow])
Mittels SaveOptions:= 0 sagst du dem Client Frontend, beim verlassen nicht speichern, da das Dokument ja gespeichert wurde, ist das kein Problem und die störende, fehlerhafte Meldung erscheint nicht mehr.
-
Hallo :-D
Vielen lieben Dank, ich habe die Zeile ergänzt und es funktioniert :-D
Liebe Grüße
Nadine
-
Ich habe das gleiche Problem, dass ich die Meldung "Möchten Sie Änderungen speichern" unterdrücken will. Bei mir sieht es so aus:
@If(@Command([FileSave]);
@Do(
FIELD tex_status :="02 ...";
@SetField(SaveOptions;"0");
@Command([FileCloseWindow]));"")
Wenn ich die vorletzte Zeile wie von Dir angegeben ändere in
FIELD SaveOptions:="0";
so kommt zwar die Meldung nicht mehr, aber der Status wird auch nicht mehr gesetzt. Das gleiche passiert, wenn ich in der letzten Zeile das "File" entferne. Vielleicht hast Du einen Tipp was ich tun kann?
-
...so kommt zwar die Meldung nicht mehr, aber der Status wird auch nicht mehr gesetzt. Das gleiche passiert, wenn ich in der letzten Zeile das "File" entferne. Vielleicht hast Du einen Tipp was ich tun kann?
Ist doch auch logisch. Schau dir mal deinen Code genau an.
Du setzt zwar das Feld Status, aber anschließend wird dein Dokument nicht mehr gespeichert. Du musst nach dem FIELD tex_status nochmal ein FileSave-Command absetzen.
Axel
-
Vielen Dank. Ja, ist logisch und jetzt funktioniert es auch. Könnte man dafür die erste @IF-Zeile weglassen?
Sorry für die blöde Frage, bin eben noch blutiger Anfänger.... :-:
-
Wenn du in deinem Fall das @If weglässt, dann wird das Status-Feld auch gesetzt, wenn das Speichern, aus was für Gründen auch immer (z.B. eine Validierungsformel meckert rum), trotzdem gesetzt und das Dokument wird erneut gespeichert. Dieses kann unter Umständen wiederum zu Meldungen (von Validierungsformeln) führen.
Wenn du keine VAlidierungsformeln einsetzt kannst du das @If auch weglassen, da das Dokument immer gespeichert wird.
Axel