Dialogbox

  • Hallo,
    ich lade in eine Dialogbox einige Werte, diese stehen dann in der betreffenden Dialogbox (test). Nun möchte ich über eine Schaltfläche in dieser DialogBox bestimmte Werte abfragen bzw. weiterverwenden.
    Der Aufruf der Dialogbox sieht folgendermaßen aus:
    Call uiws.DialogBox( "test", True, True, True, False, True, False, db.title, docTemp, True, True)


    Die Abfrage über eine Schaltfläche so:
    Messagebox docTemp.Feld1, MB_OK, "Demo"
    docTemp.Feld1 zeigt allerding nichts an, die Messagebox liefert nur "Variant does not contain an object"!??
    Wer weiß wie man die Werte dieser Dialogbox weiterverarbeitet?


    Gruß
    Bobby

    • Offizieller Beitrag

    änder mal Deine Messagebox


    Messagebox cstr(docTemp.Feld1(0)), MB_OK, "Demo"


    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

  • Leider noch immer kein anderes Ergebnis
    Der Aufruf der Dialogbox erfolgt über eine Aktionsschaltfläche in einer Ansicht.


    Code
    Sub Click(Source As Button)
    Dim uiws As New NotesUIWorkspace 
    Dim docTemp As NotesDocument
    Set docTemp = db.CreateDocument
    ....
    Call uiws.DialogBox( "test", True, True, True, False, False, False, db.title, docTemp, True, True) 
    ...
    end sub


    Die Messagebox selbst wird über eine Schaltfläche der Dialogbox aufgerufen. Feld1 ist ein Feld in dieser Dialogbox. docTemp wird allerdings nirgends gespeichert.
    Gruß Bobby

    • Offizieller Beitrag

    ruf mal die Messagebox nach der Dialogbox auf und nicht innerhalb der Dialogbox, dann sollte das richtige im Feld stehen.


    Gruß
    Dirk

  • Wenn ich die Messagebox danach aufrufe dann erhalte ich keine Fehlermeldung, allerdings ist die Messagebox leer. (und sie erscheint auch erst nach dem schliessen der Dialogbox)


    Code
    Sub Click(Source As Button)
    Dim uiws As New NotesUIWorkspace 
    Dim docTemp As NotesDocument
    Set docTemp = db.CreateDocument
    ....
    Call uiws.DialogBox( "test", True, True, True, False, False, False, db.title, docTemp, True, True) 
    Messagebox cstr(docTemp.Feld1(0)), MB_OK, "Demo"
    end sub


    Gruß
    Bobby

    • Offizieller Beitrag

    gibt es in der Dialogbox ein Feld mit dem Namen Feld1?


    Gruß
    Dirk

  • Ja, das Feld "Feld1" ist eine bearbeitbare Dialogliste mit Mehrfachwerten.


    Habe aber auch schon versucht in der Messagebox ein einfaches Textfeld (allerdings auch mit Mehrfachwerten) darzustellen.


    Beide Felder liefern nichts an, wenn ich die Messagebox nach dem Aufruf der Dialogbox aufrufe.


    Gruß
    Bobby

    • Offizieller Beitrag

    benutze mal den Debugger.


    Gibt es in der Dialogbox irgendwelche Funktionen oder Scripte, die die Feldinhalte wieder löschen?


    Gruß
    Dirk

  • Hallo
    Bin der Sache in der Zwischenzeit schon näher gekommen.
    Wenn ich mir das Textfeld ansehe, dann tauchen die einzelnen Werte auf (nur beim Zähler 0 waren keine vorhanden)


    Messagebox cstr(docTemp.Feld1(1)), MB_OK, "Demo" oder
    Messagebox cstr(docTemp.Feld1(2)), MB_OK, "Demo"
    liefern mir je einen Wert des Textfeldes.
    Die Werte des Textfeldes sind auch im Debugger unter doctemp items ... zu sehen.


    Die Dialogliste "Feld2Dial" selbst ist allerdings im Debugger auch nicht zu sehen. Diese Dialogliste hat bei der Auswahl das Textfeld (Feld1) stehen. Nun sollte man in der Dialogbox die Werte auswählen können (das funkt. auch) und in der Msgbox sollten diese Werte dann ausgegeben werden.
    Stattdessen scheint in der Msgbox eine der beiden Meldungen auf:


    Messagebox cstr(docTemp.Feld2Dial(1)), MB_OK, "Demo" -->
    Subscript out of range
    Messagebox cstr(docTemp.Feld2Dial()), MB_OK, "Demo" -->
    Wrong number of array subscripts


    Gruß
    Bobby

    • Offizieller Beitrag
    Zitat

    nur beim Zähler 0 waren keine vorhanden

    Dann ist in Deinem Array (Mehrfachwert) der erste Wert leer.


    Zitat

    Messagebox cstr(docTemp.Feld2Dial(1)), MB_OK, "Demo" -->
    Subscript out of range

    Dann geht Dein Array nicht bis 1, d.h. dort steht nur ein Wert und kein Mehrfachwert drin.


    Zitat

    Messagebox cstr(docTemp.Feld2Dial()), MB_OK, "Demo" -->
    Wrong number of array subscripts

    irgend eine Stelle in dem Array musst Du schon angeben, weil Messagebox erwartet String und docTemp.Feld2Dial ist ein Array.


    probier es mal mit
    Messagebox cstr(docTemp.Feld2Dial(0)), MB_OK, "Demo"


    Gruß
    Dirk

  • Hallo Diali,
    vielen Dank mal für Deine Geduld!
    Messagebox cstr(docTemp.Feld2Dial(0)), MB_OK, "Demo"
    funktioniert nur, wenn man die Dailogliste Feld2Dial vor dem Aufruf der Dialogbox füllt. also zB

    Code
    docTemp.Feld2Dial = Split(temp(5))
    Call uiws.DialogBox( "test", True, True, True, False, False, False, db.title, docTemp, True, True)
    Messagebox Cstr(docTemp.Feld2Dial(0)), MB_OK, "Demo"


    Eigentlich möchte ich aber das Feld Feld2Dial erst im Dialog durch den User befüllen bzw. ändern lassen (es sollten bereits einige Werte der Dailogliste angehakt sein, andere wiederum nicht)


    Diese Änderungen der Dialogliste werden dann leider nicht in die Messagebox übernommen.


    Gruß Bobby

    • Offizieller Beitrag

    bin mir nicht sicher, aber eventuell reden wir gerade aneinaner vorbei.


    Also Du willst die Dialogliste (mögliche Werte, die ausgewählt werden können) beeinflussen und die schon markierten? - richtig?


    Dann sind dies 2 verschiedene Themen.
    1. Vorauswahl von Werten (markierte Werte)
    - schreibe vor der Dialogbox die Werte in das Auswahlfeld


    2. Auswahlliste bestimmen
    - schreibe die Liste in irgend ein Feld (z.B.: auswahlliste, vor dem Aufruf der DialogBox
    - benutze als Formel in dem Auswahlfeld das Feld (im Bei.: auswahlliste


    Die MsgBox kann Dir nur die markierten Werte in dem Feld anzeigen, aber nie die Liste.


    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

  • Zitat


    Diali schrieb:
    Also Du willst die Dialogliste (mögliche Werte, die ausgewählt werden können) beeinflussen und die schon markierten? - richtig?


    Ja genau, wobei die Liste der Werte, die ausgewählt werden können eigentlich unverändert ist.


    Zitat


    Diali schrieb:
    1. Vorauswahl von Werten (markierte Werte)
    - schreibe vor der Dialogbox die Werte in das Auswahlfeld


    --> das funktioniert prima


    Zitat


    Diali schrieb:
    2. Auswahlliste bestimmen
    - schreibe die Liste in irgend ein Feld (z.B.: auswahlliste, vor dem Aufruf der DialogBox
    - benutze als Formel in dem Auswahlfeld das Feld (im Bei.: auswahlliste


    --> funktioniert ebenfalls, auch wenn ich die Liste fix ins Auswahlfeld stelle ohne zusätzliches Feld


    Problem ist aber: Die Messagebox zeigt leider nur die Werte an die bereits vorm Aufruf der Dialogbox markiert waren (siehe 1.), wenn ich andere Werte in der Liste markiere (in der Dialogbox), dann wirkt sich das nicht auf die Msgbox aus.


    Gruß
    Bobby