Anfängerfrage: Feldinhalt in zweites Feld übergeben!?

  • Möchte in meiner Maske von einem Feld mit dem Typ "Dialogliste" den Inhalt in ein zweites Feld übernehmen. Jedes mal wenn ich aus dem Dialogfeld etwas ausgewählt habe soll es in das zweite Feld übergeben werden. Also Mehrfacheinträge müssen möglich sein.


    Gruss

    • Offizieller Beitrag

    ist das 2. Feld ein berechnetes Feld?


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

    • Offizieller Beitrag

    nein um so einfacher ist es.


    Stelle als Formel in dem Feld den Feldname von der Dialogliste ein. Im Dialogliste-Feld muss dann noch in den Eigenschaften eingestellt werden "Felder bei Schlüsselwortänderung aktualisieren".


    Gruß
    Dirk

  • Die Übergabe funktioniert allerdings möchte ich nicht dass in der Dialogliste dasselbe nochmal steht. Sonst hab ich ja alles doppelt.
    Es soll mir nur das zweite Feld angezeigt werden...

    • Offizieller Beitrag

    OK, dann muss es ins Exiting des Dialogfeldes.


    Dort muss dann der Inhalt des Dialogfeldes in das ander Feld kopiert werden und das Dialogfeld muss auf "" gesetzt werden.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Jedes Feld hat mehrere Ereignisse. Exiting wird ausgeführt beim verlassen des Feldes. Die Ereignisse kannst Du im Designerclient anschauen und entsprechend mit Formeln belegen.
    Deine Formel müsste in etwa so lauten:


    @setfield("DeinanderesFeld"; @unique(DeinanderesFeld : Dialogfeld));
    field Dialogfeld := ""


    Natürlich musst Du die Feldnamen noch anpassen. Bitte auch beachten: Die "Gänsefüsschen" bei dem @setfield sind wichtig! Und bei der weiteren Formel ist ein Doppelpunkt, damit das als Mehrfachwert in Dein anderes Feld eingetragen wird.
    Der @unique sorgt dafür, das keine doppelten Einträge in dem anderen Feld stehen.


    %Edit
    Schlagt mich! Seit wann kann ich denn im "Exiting" Formeln verwenden? Oh Mann bin ich blöd!!!!


    Sorry, da muss das ganze natürlich im Script gemacht werden.
    Hier wäre das Ergebnis in Script:


    Dim ws As New notesuiworkspace
    Dim uidoc As notesuidocument
    Dim doc As NotesDocument
    Dim item As NotesItem
    Dim arr As Variant

    Set uidoc = ws.CurrentDocument
    Set doc = uidoc.Document
    Set item = doc.GetFirstItem("DeinanderesFeld")

    Call item.AppendToTextList(uidoc.FieldGetText("dialogfeld"))
    arr = doc.GetItemValue("DeinanderesFeld")
    arr = Arrayunique(arr)
    doc.DeinanderesFeld = arr
    doc.dialogfeld = ""


    Tut mir leid für diesen dummen Fehler. Habs auch nur deshalb nicht rausgelöscht weil ich nicht weiß ob Du schon gelesen hast...

  • Bekomme die Fehlermeldung "Variant does not contain an object".
    Und beim Verlassen des Dialogfeldes bleibt der Eintrag bestehen und in das andere Feld wird der Wert doppelt eingetragen.

  • Hast Du den Scriptcode komplett so übernommen, auch incl. der "Gänsefüsschen"? Hab das bei mir mehrfach getestet und problemlos im Einsatz.
    Bei welcher Codezeile kommt denn der Fehler (Debugger einschalten)?


    Was aber vielleicht sein könnte:
    Ist das "andereFeld" bearbeitbar oder berechnet? Da kann es evtl. zu Problemen kommen wenn es berechnet ist. Falls es daran liegt, dann lass die Werte in ein verstecktes Feld schreiben und in einem weiteren die Werte hieraus anzeigen.

  • Wird denn die Variable arr (wieder im Debugger schauen) initialisiert?
    Ist das "andereFeld" für Mehrfachwerte zugelassen?


    Kann sein, das ich Dir erstmal nicht mehr weiterhelfen kann da ich gleich einen Termin habe. Ich versuche aber heute abend oder am WE nochmal reinzuschauen...