Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: chatty am 04.04.08 - 10:37:23

Titel: Banale Frage
Beitrag von: chatty am 04.04.08 - 10:37:23
Hallo zusammen,

bin grad am verzweifeln weil ich wohl zu doof für eine einfache Feldzuweisung bin... also ich habe ein Notes-Dokument mit einem Feld welches als Eigenschaft "Computed" hat. Wenn ich in dem Dokument auf einen Button drücke so soll dieses Feld den Wert "X" im Dokument erhalten und gesichert werden.

Ich habe dies wie folgt versucht:

@SetField(Informed_Person; "X");
@Command([FileSave]);

Nur funktioniert das nicht, das Feld "Informed_Person" bleibt leer. Dieses Feld ist versteckt und wird dem User nicht angezeigt. Es soll als Flag verwendet werden.
Was mache ich hier falsch???

Grüße
Chatty
Titel: Re: Banale Frage
Beitrag von: ZaLudtske am 04.04.08 - 10:40:03
Hallo,

ändere die Eigenschaft Typ auf "Berechnet beim Anlegen" dann sollte es klappen.

Bei berechnet wird der Wert immer wieder auf der Basis der Formel berechnt und somit überschrieben.

Rainer
Titel: Re: Banale Frage
Beitrag von: chatty am 04.04.08 - 10:42:49
Hallo Rainer,

habe ich auch schon versucht, leider funktioniert dies auch nicht.

Gruß
Chatty
Titel: Re: Banale Frage
Beitrag von: MadMetzger am 04.04.08 - 10:43:15
Meines Wissens funktioniert @SetField nur für bearbeitbare Felder und nur während das Dokument im Bearbeitenmodus ist.

Den Wert berechneter Felder kannst du per Script über das korrespondierende Item im Backend überschreiben. Aber du musst halt zusehen, dass dir eine Frontend-Berechnung nicht dazwischen grätschen kann. Was du dazu tun musst, hat Rainer hier schon geschrieben (Berechnet beim Anlegen).

Aber vielleicht gibt es auch eine ganz andere Lösung für dein Problem.

Beschreib mal bitte, was du eigentlich tun willst.
Titel: Re: Banale Frage
Beitrag von: dirk_2909 am 04.04.08 - 10:44:40
Was für eine Formel steht denn in dem berechneten Feld -> ich hoffe nicht: ""  ::)

Das sollte als Button-Formel gehen:
Code
Field Informed_Person := Informed_Person ;
@SetField(Informed_Person; "X");
@Command([FileSave]);
Titel: Re: Banale Frage
Beitrag von: chatty am 04.04.08 - 10:48:36
Hallo Dirk_2909,

als Formel steht der Name des Feldes drin also --> Informed_Person

Ist das das Problem?

Gruß
Chatty
Titel: Re: Banale Frage
Beitrag von: dirk_2909 am 04.04.08 - 10:49:50
das ist nicht das Problem. Es ist OK.
Hast Du die Formel in der Schaltfläche angepasst?
Titel: Re: Banale Frage
Beitrag von: chatty am 04.04.08 - 10:55:20
die Formel des Buttons ist wie folgt:

FIELD Informed_Person := Informed_Person ;
...

@If(Informed_Person != "X";
@Do(@MailSend("Müller/";"";"";_subject; "MAIL-TEXT"; "");
@SetField(Informed_Person; "X");
@Command([FileSave]);
@Command([FileCloseWindow])); "")

Ziel soll es hier sein das die Mail nur dann versendet wird wenn das Feld Informed_Person <> "X" ist. Nach dem Mailversand soll das Feld Informed_Person = "X" sein damit Müller nicht erneut angemailt werden kann.

Die Sicherung des "X" funktioniert aber nicht, Müller erhält jedes Mal die Mail.

Titel: Re: Banale Frage
Beitrag von: dirk_2909 am 04.04.08 - 11:03:05
Zitat
FIELD Informed_Person := Informed_Person ;
...

@If(Informed_Person != "X";
@Do(@MailSend("Müller/";"";"";_subject; "MAIL-TEXT"; "");
@SetField(Informed_Person; "X");
@Command([FileSave]);
@Command([FileCloseWindow])); "")

1.
Ich würde die Schaltfläche verbergen wenn Informed_Person = "X"

2. ich bin kein Freund von @Do (meine Meinung). Ich würde es so machen:
Code
@if( Informed_Person = "X" ; @Return( "" ) ; "" )


@MailSend("Müller/";"";"";_subject; "MAIL-TEXT"; "")

Field Informed_Person := "X" ;

@Command([FileSave]);
@Command([CloseWindow])



Titel: Re: Banale Frage
Beitrag von: chatty am 04.04.08 - 11:09:06
Hallo Dirk,

es funzt endlich!!!

Das einzige was ich jetzt geändert habe ist statt

@SetField(Informed_Person; "X");

den Ausdruck

Field Informed_Person := "X" ;

zu verwenden und dann wird der Wert "X" im Feld gesichert. Verstehen tu ich es trotzdem nicht...

Vielen Dank für deine (und allen anderen) Hilfe!!!!!

Chatty
Titel: Re: Banale Frage
Beitrag von: fritandr am 04.04.08 - 11:11:02
Hallo,

die Hilfe sagt dazu:

@SetField( fieldName ; value )

Parameters

fieldName
The name of the field whose value you want to set, enclosed in quotation marks.

Vielleicht liegt/lag es ja daran.


@Chatty,
bitte in Zukunft aussagefähigere Titel für Anfragen nennen. Siehe auch hier (http://atnotes.de/projekte/bp/team/tmc/_forumsregeln/rules001.html#33)


Titel: Re: Banale Frage
Beitrag von: dirk_2909 am 04.04.08 - 11:21:53
Zitat
@SetField(Informed_Person; "X");

uupps das hatte ich auch übersehen  :-[  ;D

Klar: @SetField("Informed_Person" ; "X");