Fragen zur Lotusscript Dialogbox

  • Hallo,


    in einer Datenbank startet der Anwender manuell einen Agenten. Dieser öffnet mittels Dialogbox eine Maske in der der Anwender Eingaben tätigen kann.
    Anschließend klickt er auf OK oder auf Abbrechen.
    Kann ich anschließend im Agenten noch auf die gemachten Eingaben zugreifen?
    Kann ich noch die Dimension des Fensters vorgeben?
    Kann ich z.B. durch einen Button (GoTop) wieder an den Anfang der Maske springen?


    Code
    Set db = ses.CurrentDatabase
        Set dialogdoc = db.CreateDocument
    
        dialogdoc.SignaturText = "Noch keine Ressource ausgewählt..."    
    ndialog = ws.Dialogbox("Auswahl",False,False,False,True,True,False,"Auswahl der Ressource",dialogdoc)
    
    If Not ndialog Then                ' True bei OK, False bei Cancel
               'MsgBox ("abgebrochen")
       Exit Sub
        End If


    LG Peter

    • Offizieller Beitrag

    Auf die Ergebnisse oder Auswahl kannst du über das Dokument dialogdoc.Feldname zugreifen, wenn [noNewFields] , [noFieldUpdate] auf False steht.


    Die Dimension des Fensterns kannst du bestimmen über:
    - bei Layoutbereichen: [autoHorzFit] , [autoVertFit] auf True setzen
    - bei einer einzellnen Tabellenzelle: [sizeToTable] auf True setzen


    Code
    flag = notesUIWorkspace.DialogBox( form$ , [autoHorzFit] , [autoVertFit] , [noCancel] , [noNewFields] , [noFieldUpdate] , [readOnly] , [title$] , [notesDocument] , [sizeToTable] , [noOkCancel] , [okCancelAtBottom] )


    An den Anfang der Maske kommst du, wenn du dir das UI-Dokument holst und dann in das 1. Feld springst mit notesUIDocument.GotoField( Feldname ).


    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

  • Hallo Dirk,


    trotz der beiden Parameter autoHorzFit und autoVertFit auf True wird weiterhin das Fenster fast doppelt so breit wie nötig angezeigt.
    Die Fensterhöhe ist zwar anfangs ausreichend, aber wenn der Anwender eine Option wählt, wird ein RichText-Feld mit Inhalt gefüllt und das Fenster ist nicht mehr hoch genug.
    Ich springe schon mit GotoField auf das erste Feld, aber dennoch ist es nicht mehr sichtbar, wenn vorher ein ausreichend langer RichText eingefügt wurde.
    Zudem ist das erste Feld ja nicht zwingend ganz oben.



    LG Peter

    • Offizieller Beitrag

    RT-Feld bedeutet, dass du keinen Layoutbereich verwendest, damit sind die beiden Parameter [autoHorzFit] und [autoVertFit] wirkungslos.


    Dann bleibt nur noch um alles eine Tabellenzelle zu machen und dann den Parameter [sizeToTable] auf True zu setzen.


    ALLERDINGS wirst du keine dymaische Dialogbox erhalten, sondern die Ausgangsgröße der Tabelle bestimmt die Größe der Dialogbox.


    Ist etwas unschön. Ich helfe mir da immer mit einer "angemessenen" Zahl an Leerzeilen, am Ennde und innerhalb der Tabellenzelle. Ggf. werden dann die Leerzeilen nach unten ins AUS geschoben.


    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