Feldupdate per Dialogbox

  • Irgendwie hab ich 'ne Blockade.


    Ich versuche zwei Felder (ApprComment u. d_ApprComment_1)eines Dokumentes (Hauptdok) per Dialogbox zu füllen. Die Werte sollen zu den bestehenden Elementen des Feldes hinzukommen.
    Die Variable in der Dialogboxmaske habe ich d_ApprComment genannt. U.g. Funktion habe ich dann einer Aktion zugeordnet, die beim Lesen des Dokumentes aktiv ist.


    Nun geschieht folgendes:
    Beim ersten Aufruf der Dialogbox speichert Notes die Eingabe wie gewünscht.
    Beim erneuten Aufruf wird wie gewünscht der zweite Eintrag zum ersten Feldeintrag hinzugespeichert.
    Ein dritter Aufruf speichert dann merkwürdigerweise in das gewünschte Feld den Eintrag mehrfach. Ebenso alle folgenden Aufrufe.


    Warum wird nicht bei jedem Aufruf genau ein Eintrag hinzugefügt?
    Warum ist das Feld in der Dialogmaske jedesmal mit dem letzten Eintrag vorbelegt?
    Wieso sind werden die Einträge nicht in der Reihenfolge der Eingabe gespeichert?



    Hier die Formel der Aktion: (Notes 5)
    -------------------------------
    @Command([EditDocument]; "1");
    @DialogBox("EnterComments"; [AutoVertFit] : [AutoHorzFit]);
    FIELD d_ApprComment_1 := @If(d_ApprComment="";"";d_ApprComment_1+";"+@Name([CN];@UserName)+" schrieb am: "+@Text(@Now));
    FIELD ApprComment := @If(d_ApprComment="";"";ApprComment+";"+d_ApprComment);
    @PostedCommand([FileSave]);
    @PostedCommand([FileCloseWindow])

  • Du behandelst hier deine Mehrfachwertefelder als Einfachwertefelder und das läuft nur dann gut wenn genau ein Wert drin steht, daher das Problem ab dem 3., Eintrag.
    Wenn du an eine Liste etwas Anhängen willst, dann verwende als Operator den : und nicht das +.
    + addiert nämlich alle Werte der 2. Liste zu denen der 1. und das gibt dann so seltsame Effekte


    @Command([EditDocument]; "1");
    @DialogBox("EnterComments"; [AutoVertFit] : [AutoHorzFit]);
    FIELD d_ApprComment_1 := @If(d_ApprComment="";"";d_ApprComment_1:(@Name([CN];@UserName)+" schrieb am: "+@Text(@Now)));
    FIELD ApprComment := @If(d_ApprComment="";"";ApprComment:d_ApprComment);
    @PostedCommand([FileSave]);
    @PostedCommand([FileCloseWindow])

  • Weil die DialogBox die Werte aus dem darunterliegenden Dokument übernimmt.
    Da du beim Verlassen des DialogFensters einen Wert in dieses Feld geschrieben hast, diesen aber nach Übernahme in das andere Feld nicht gelöscht hast, verbleibt dieser ja im Dokument

  • Manchmal übersieht man einfach per der Programmierung diese Kleinigkeiten.
    Anschl. kann man 20mal kontrollieren und findet nicht den Fehler.


    Vielen, vielen Dank für die Hinweise.


    Problem erledigt.