Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Lloyd am 04.08.10 - 19:07:17
-
Hallo,
kann ich eine Dialogbox aufrufen, wenn ich mich nicht in der Datenbank selber befinde. Ich denke hier z.B. an ein Smart-Icon. Oder gibt es dafür eine Alternative? Eine Maske öffnen ist kein Problem, ich möchte aber kein Full-Screen Fenster, sondern lediglich ein kleines Pop-Up Fenster wo ich eine Auswahl treffen kann, bevor es weitergeht.
-
Ich weiss nicht, ob ich der einzige bin, der mit der Anfrage noch ein Problem hat: Kannst Du genaueres über Dein Vorhaben und den Hintergrund / die Rahmenbedingungen sagen?
Bernhard
-
Hallo Bernhard,
ich möchte per Script eine Dialogbox öffnen (z.B. siehe Scriptcode).
Set ws = New NotesUIWorkspace 'Frontend
Call ws.DialogBox("Test", True, True, False, False, False, False, db.Title, doc, True) 'Frontend
Allerdings möchte ich die Dialogbox per Smart-Icon öffnen. Ich befinde mich also nicht in der Datenbank selbst, so dass ich die Maske "Test" nicht ansprechen kann, die die Dialogbox verwenden soll. Gibt es eine Möglichkeit die Dialogbox über das Backend anzusprechen, so dass ich zunächst die Datenbank mitgeben kann und somit auch Zugriff auf die Masken habe? Für Alternativen bin ich offen.
-
Hallo,
Lotus Script kann in den Smart-Icons nicht verwendet werden.
Hier kannst Du nur @-Funktionen verwenden.
Und hier gibt es doch die Funktion @DialogBox(...)
Andreas
-
Hallo Andreas,
du hast natürlich recht, script geht in den Smart-Icons nicht. Im Grunde geht es mir darum, dass ich eine bestimmte Maske einer Datenbank aus einer anderen Datenbank über eine Dialogbox aufrufen kann. Was ich bisher gesehen habe, kann ich aber eine Dialogbox nur verwenden, wenn ich mich gerade in der Datenbank befinde wo auch die entsprechende Maske drin ist, was in meinem Vorhaben nicht der Fall ist.
-
... öffne über das smarticon ein dokument in der DB in welcher deine dialogbox ist. Nutze das QO oder PO um deine Dialogbox anzuzeigen. Die Events kannst Du dann mit einem Continue=False 'abbrechen'. Nutze ich so für diverse 'Service-Aktionen'.
Gruß
Armin
-
Hallo Armin,
genau das habe ich gesucht. Funktioniert prima.
Vielen Dank.
-
Hallo Armin,
ich muss doch nochmal eine Frage stellen: Im PostOpen der Maske öffne ich meine Dialogbox. Klicke ich in der Dialogbox auf "OK", dann schliesst sich die Dialogbox und die Maske dahinter auch. Klicke ich auf "Abbrechen" oder drücke "Escape" schliesst sich zwar die Dialogbox, aber die Maske dahinter bleibt offen. Irgendwie läuft er das QueryOpen dann nicht mehr weiter durch. Ich habe über diverse Prints gesehen dass er das PostOpen nur weiter durchläuft wenn ich in der Dialogbox auf "OK" klicke. Woran könnte das liegen ?
Dim Source As NotesUIDocument
Dim answer As Boolean
answer = ws.DialogBox( "Erfassung", True, True, False, False, False, False, "Dokument anlegen",dok,False,False,True)
If answer = True Then
...
...
End If
Call Source.Close(True)
-
Jetzt hab ich zumindest eine Möglichkeit gefunden wie ich das umgehen kann. Wenn ich das "Call Source.Close(True)" direkt nach dem Öffnen der Dialogbox durchführe, schliesst sich die Maske im Hintergrund auf alle Fälle immer. Mich würde aber dennoch interessieren warum der PostOpen nicht weiter durchläuft wenn ich die Dialogbox abbreche, vielleicht hat jemand eine Antwort für mich, damit ich auch verstehe warum das so passiert.
Dim Source As NotesUIDocument
Dim answer As Boolean
answer = ws.DialogBox( "Erfassung", True, True, False, False, False, False, "Dokument anlegen",dok,False,False,True)
Call Source.Close(True)
If answer = True Then
...
...
End If
-
... ich verwende inzwischen hierfür nur noch das Queropen (da ich dann auch mehrere Dokumente markieren kann). Der Code muss immer an das "Continue = False" kommen, dann sollte die maske immer zugehen (d.h. nie aufgehen, das tut sie nur noch bei einem fehler ...).
Gruß
Armin