Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Lloyd am 04.08.10 - 19:07:17

Titel: Dialogbox einer Datenbank aufrufen
Beitrag 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.
Titel: Re: Dialogbox einer Datenbank aufrufen
Beitrag von: koehlerbv am 04.08.10 - 21:12:54
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
Titel: Re: Dialogbox einer Datenbank aufrufen
Beitrag von: Lloyd am 05.08.10 - 09:50:04
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.
Titel: Re: Dialogbox einer Datenbank aufrufen
Beitrag von: ascabg am 05.08.10 - 10:00:22
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
Titel: Re: Dialogbox einer Datenbank aufrufen
Beitrag von: Lloyd am 05.08.10 - 10:18:14
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.
Titel: Re: Dialogbox einer Datenbank aufrufen
Beitrag von: S2000 am 05.08.10 - 11:03:15
... ö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
Titel: Re: Dialogbox einer Datenbank aufrufen
Beitrag von: Lloyd am 10.08.10 - 15:41:02
Hallo Armin,
genau das habe ich gesucht. Funktioniert prima.

Vielen Dank.
Titel: Re: Dialogbox einer Datenbank aufrufen
Beitrag von: Lloyd am 11.08.10 - 11:24:05
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)
Titel: Re: Dialogbox einer Datenbank aufrufen
Beitrag von: Lloyd am 11.08.10 - 11:29:12
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
Titel: Re: Dialogbox einer Datenbank aufrufen
Beitrag von: S2000 am 16.08.10 - 14:31:58
... 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