Autor Thema: Mehrfachwerte per Formel hinzufügen  (Gelesen 1938 mal)

Offline grassi

  • Frischling
  • *
  • Beiträge: 8
Mehrfachwerte per Formel hinzufügen
« am: 16.11.16 - 11:00:49 »
Guten Tag,

ich habe in einer Maske ein bearbeitbares Textfeld (TMQSgueltig) in das ich Mehrfachwerte zulasse. Immer, wenn ein User in dem Dokument eine gemeinsame Aktion ausführt, soll Datum und ausführender User in das Feld dokumentiert werden. Die Notes-Formel dafür sieht folgendermaßen aus:

@Command([EditDocument]);
@If(TMQSgueltig="";@SetField("TMQSgueltig";@Text(@Now) + " von:" + @Name([CN];@UserName));
@SetField("TMQSgueltig"; TMQSgueltig + "; " + @Text(@Now) + " von:" + @Name([CN];@UserName)));
@PostedCommand([FileSave]);
@PostedCommand([FileCloseWindow])

Nach der ersten Ausführung (Feld ist vorher leer) steht der korrekte Eintrag in dem Feld
16.11.2016 10:51:22 von:Willi Winzig

nach der zweiten Ausführung sieht es auch noch sauber aus
16.11.2016 10:51:22 von:Willi Winzig
16.11.2016 10:51:40 von:Willi Winzig

ab der dritten Ausführung wird's komisch. Danach sieht das Feld wie folgt aus
16.11.2016 10:51:22 von:Willi Winzig
16.11.2016 10:52:01 von:Willi Winzig
16.11.2016 10:51:40 von:Willi Winzig
16.11.2016 10:52:01 von:Willi Winzig

bei der nächsten Aufführung kommen wieder 4 Zeilen dazu anstatt nur eine, die ich erwarten würde. Es scheint, als ob die Formel für jeden vorhandenen Wert einmal ausgeführt wird. Was muß ich machen, damit nur ein weiterer Wert in das Mehrfachfeld eingetragen wird.

Danke für Eure Hilfe.

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Mehrfachwerte per Formel hinzufügen
« Antwort #1 am: 16.11.16 - 11:16:19 »
Mehrfachwerte werden in Notes nicht mit "+" gebildet, sondern mit ":". Was Du machst ist eine "Vergewaltigung" der Formelsprache. Und weil Du dann Mehrfachwerte mit Text zusammenrechnest, wird das mit jeder Ausführung schlimmer.
So würde ich das in etwa schreiben:
Code
@Command([EditDocument]; "1");
_newValue := @Text(@Now) + " von:" + @Name([CN];@UserName);
FIELD TMQSgueltig := @Trim( TMQSgueltig : _newValue );
@PostedCommand([FileSave]);
@PostedCommand([FileCloseWindow])

Ein + Operator in Formelsprache arbeitet immer auf die ganze Liste und addiert jedes Element der Liste mit dem korrelierenden Element der anderen Liste.
Dabei wird das letze Element der kürzeren Liste so oft wiederholt, dass beide Listen gleich lang sind.

Wenn in einem Feld die Mehrfachwerte "a" : "b" stehen, und Du schreibst:

Feld + "1", dann steht nachher im Feld "a1" : "b1".

Du machst Das Ganze nochmal schlimmer, indem Du den Feldtrenner des Feldes mit reinrechnest:

Feld + ";" + "1" ergibt:

"a;1" : "b;1", woraus dann das Frontend nach F9 (oder speichern) dann folgendes macht:

"a" : "1" : "b" : "1".

Wenn Du jetzt wieder Feld +";" + "2" machst, dann kommt dabei raus (; und 1 werden jeweils viermal wiederholt):

"a;2" : "1;2" : "b;2" : "1;2" und nach Umsetzung:

"a" : "2" : "1" : "2" : "b" : "2" : "1" : "2"

Die "3", die Du hinzufügst, wird es dann schon 8 mal geben, die vier 16 Mal...


ACH: Da fällt mir noch auf..: Ist der Benutzer in Deiner Formel schon zufälligerweise im Edit- Mode, dann fällt das Ganze auf die Schnauze, weil @Command([EditDocument]) ohne Parameter das Dokument dann in den Read- Modus versetzt und das folgende FileSave fehlschlägt...
« Letzte Änderung: 16.11.16 - 11:26:27 von Tode »
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline grassi

  • Frischling
  • *
  • Beiträge: 8
Re: Mehrfachwerte per Formel hinzufügen
« Antwort #2 am: 16.11.16 - 11:43:23 »
Super. Besten Dank für die Lehrstunde  :D

Hat funktioniert!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz