Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: fiuman007 am 25.08.04 - 09:47:33
-
Tach,
ich habe in einer Maske einen "Save" Button, der eine Mail an den Koordinator verschickt um ihn über ein neues Projekt zu informieren.
Das Problem ist aber dass der Koordinator nicht immer gleich am Anfang eingetragen wird, sondern erst nach dem alle Infos und Dokumente vorhanden sind. Dabei wird mehrmal was in die DB eingetragen und dieser "Save" Button betätigt.
Was ich jetzt brauche ist eine Abfrage ob im Feld "Coordinator" überhaupt was ist, und ob es verändert wurde (falls im Laufe des Projekts der Koordinator ausgetauscht wird).
Mein Code schaut so aus:
@If(Coordinator != "");
_Subject :="Projekt " + ProjectNo + " / Kunde: " + Customer + " / Neuer Entwicklungsauftrag";
@MailSend(Coordinator;"";"";_Subject;"Document Link: ";"";[IncludeDoclink])
Was jetzt noch fehlt ist dann noch ein "ODER" und dahinter dann die Abfrage ob sich das Feld geändert hat. Mit @Modified geht so was nicht oder ?
GIbts da so was wie ein FieldModified oder so ...
Vielen Dank
fiuman007
-
Über Formelsprache wüßte ich da keinen Befehl für. Unter Script könntest Du dir über das Item das LastModified Datum holen.
Ansonsten müßtest Du ein zusätzliches, verstecktes Feld einbauen, in dem der Koordinator ein zweites Mal gespeichert wird. Das Setzen des Feldes machst Du dann am Ende des Save-Buttons, dann kannst Du vorher immer noch die beiden Feldwerte vergleichen.
-
No way mit @functions. Im PostOpen muss der Inhalt des bewussten Feldes eruiert werden, im QuerySave dann geprüft werden, ob sich da etwas geändert hat. Dann ist es ein leichtes ...
HTH,
Bernhard
-
Also ich habe es jetzt über ein 2. verstecktes Feld gemacht.
Das versteckte Feld heisst modCoordinator und das normale Coordinator.
Ich habe im QueryOpen (formel):
FIELD modCoordinator := Coordinator;
""
und in meiner Bedingung dann.
_Subject :="Projekt " + ProjectNo + " / Kunde: " + Customer + " / Neuer Entwicklungsauftrag";
@If(modCoordinator != Coordinator;
@MailSend(Coordinator;"";"";_Subject;"Document Link: ";"";[IncludeDoclink]); "")
Aber irgendwie haut es nicht hin. Die Mail immer verschickt wenn "Speichern" geklickt wird. Obwohl sich der Koordinator nicht geändert hat.
Jemand irgendeine Idee ?
Danke
-
Was steht denn in den Feldern drin ?
Sonst bau vorsichtshalber mal ein @Command([FileSave]) vor die @If-Abfrage.
-
Die Felder sind von Typ Names. Also sind Personen aus dem Adressbuch drin.
Bekomme jetzt auch ne Fehlemeldung wenn ich es beim 2. oder 3. mal abspeichere.
Another copy of this document was saved while you were editing it. Save your changes also as a Save Conflict document?
??? :-[
-
Setz das mal nicht ins QueryOpen, sondern ins PostOpen, wie Bernhard schon geschrieben hatte.
Und dann würde ich die Abprüfung aus dem Button nehmen und lieber ins QuerySave packen, oder hast Du das Speichern über den Button erzwungen ?
-
Habs jetzt so ausprobiert wie du es geschrieben hast.
Hab dann das Dokument nicht über den Button sondern über dieses Standard- Datei --> Speichern gespeichert.
Bekomme die Fehlermeldung:
Special database object cannot be located
-
Hi,
ich hab das jetzt mal auf die Schnelle nachgestellt.
Also :
Feld modCoordinator, Typ Namen, Vorgabewert "", Bearbeitbar, Hidden
Im PostOpen folgende Formel rein :
@Command([EditDocument]);
@SetField("modCoordinator"; Coordinator)
Im QuerySave folgende Formel rein :
_Subject :="Projekt " + ProjectNo + " / Kunde: " + Customer + " / Neuer Entwicklungsauftrag";
@If(@IsNewDoc; ""; modCoordinator != Coordinator;
@MailSend(Coordinator;"";"";_Subject;"Document Link: ";"";[IncludeDoclink]); "");
@Command([FileCloseWindow])
Einzige Problem ist dann, daß das Dokument im EditMode ist und daß Personen, die keine Änderungsrechte haben, eine Fehlermeldung bekommen dürften, da diese das EditDocument nicht ausführen können.
Eine Alternative wäre ein Button mit folgender Formel :
_Subject :="Projekt " + ProjectNo + " / Kunde: " + Customer + " / Neuer Entwicklungsauftrag";
@If(@IsNewDoc; ""; modCoordinator != Coordinator;
@MailSend(Coordinator;"";"";_Subject;"Document Link: ";"";[IncludeDoclink]); "");
@SetField("modCoordinator"; Coordinator)
@Command([FileSave]);
@Command([FileCloseWindow])
-
Es funktioniert. Vielen Dank Driri.
Jetzt hab ich aber noch einiger solcher Felde rmit MailSend Funktionen. Und die müssen da alle rein. Hehe
Danke nochmals
Gruß
fiuman007
-
Gerne, der Button hat übrigens noch ein Problem : Wenn der User per ESC das Dokument verläßt, ziehen ja die Formeln nicht.