Domino 9 und frühere Versionen > Entwicklung

Backend - Frontend: Dialogbox

(1/5) > >>

TMC:
Hi,

ich habe einen kleinen Stunt vor - schöne Aufgabe für den Freitag Abend :-)

User befindet sich in einem Dokument. Nun klickt der User auf einen Button.

Der Button öffnet eine temporäre Dialogbox:

--- Code: ---Dim docTemp As NotesDocument
   Set docTemp = db.CreateDocument
   Call workspace.DialogBox( "box_CreateHotspot", True, True, False, False, False, False, db.title, docTemp, True, False)
--- Ende Code ---

Die Dialogbox hat im Postopen einen Code:

Und jetzt geht das Problem an:

Jetzt würde ich gerne im Postopen die gerade geöffneten Dialogbox als UIdoc definieren, damit ich dort Frontend-Zugriffe habe (z.B. Richtextfeld füllen etc.).

Eigentlich müsste ich ja wohl die Dialogbox vorher speichern, um als UI verfügbar zu sein, oder?
Konflikt: Das temporäre Dialogbox-Dokument soll danach wieder gelöscht werden - was aber wenn User gar keine Löschrechte hat?

Jetzt meine Frage:

Hat man eine Möglichkeit, ein Backend-Dokument (hier: docTemp) in ein Frontend-Doc umzuwandeln, um darauf zugreifen zu können, OHNE dass man das Backend speichert?

Ich hoffe meie Ausführung hier ist einigermaßen verständlich.......

Matthias

TMC:
Sorry, man vergesse meine Frage.

Ich habe natürlich Zugriff.

Schließlich steht da
Sub Postopen(Source As Notesuidocument)

Und Source ist nunmal das UIDoc, also Frontend  :D

Matthias

koehlerbv:
Wenn Du gerne schreibst und Dir "Source" nicht gefällt, hättest Du natürlich auch

Dim ws As New NotesUIWorkspace
Dim uidoc as NotesUIDocument
Set uidoc = ws.CurrentDocument
coden können (ab PostOpen)

Bernhard  ;)

TMC:
Danke Bernhard, aber in dem Kontext war UI leider das eigentliche Dokument.


--- Zitat ---User befindet sich in einem Dokument. Nun klickt der User auf einen Button
--- Ende Zitat ---

Eben dieses Dok war im Frontend für Notes, obwohl ich eine Dialogbox öffne.
Daher die Frage.......

Ciao,
Matthias

Semeaphoros:
Das ist natürlich Definitionsfrage. Es gibt immer nur ein UI-Doc und das ist dasjenige, welches innerhalb des Client den Focus hat. Das Userdoc. an dem der User arbeitet, ist solange UIDoc, bis die Diabox aufgeht, dann wechselt das UIDoc auf die Diabox. Im Postopen ist das ja bereits der Fall, und der Code von Bernhard, wenn auch völlig korrekt, ist schliesslich nur Fahren mit angezogener Handbremse: Man verbrennt CPU-Zyklen mit Zuweisen von etwas, was man schon über Source im Zugriff hat. Schlimm ist es nicht, da die erstellten Referenzen nicht wirklich neue Instanzen bilden, sondern auf das bereits instantiierte UIDoc verweisen.

Ein Hinweis sei noch erlaubt: Wenn man sowas geschachtelt macht, sprich aus der Diabox eine weitere Diabox öffnet, dann zünden beim zweiten Durchlauf leider nicht alle Events, ein ärgerlicher Bug, den man nur indirekt feststellen kann, da ja der Debugger nicht dialogfähig .... eh .. Diaboxfähig ist.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln