Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: jmanuel am 02.03.06 - 15:58:48
-
Hallo,
ich will nur eine kurze Antwort um ganz Sicher zu sein:
Werden die View Events, wie z.B. "Queryopendocument" bei EmbeddedViews ausgeführt oder nicht ?
Vielen Dank für eine JA/NEIN Antwort.
Manuel
-
Ja.
die Events werden ausgeführt.
Axel
-
HMM ich hoffe du irrst dich nicht !
1. Ich habe in jedem Event eine Printzeile eingebaut. Mein Print erscheint nicht !
Meine Arbeitsumgebung:
Ein Frameset mit 3 Frames. Links ist eine Maske mit einer EmbeddedView.
Rechts wird das Dokument angezeigt.
EmbeddedView aus dem Grund, weil ich die SingleCategory brauche.
2. Mein grundsätzliches Ziel:
Ich habe in der EmbeddedAnsicht nun einige DummyDokumente. Wenn eins dieser Dummies angeklickt wird, möchte ich stattdessen ein anderes Dokument öffnen. Das Prinzip funktioniert in einer normalen Ansicht. In der EmbeddedView nicht, weil der ViewEvent "Queryopendocument" nicht gefeuert wird.
Was mache ich falsch ? Ich möchte, dass das Event bei einem Einfachklick gefeuert wird. Weil sich ja das Dokument bei einem Einfachklick öffnet und auch geöffnet werden soll.
Manuel
-
Ich habe es bei mir probiert. In einer View habe ich im QuerydocumentOpen eine Messagebox eingebaut und die Ansicht in eine Maske eingefügt. Wenn ich in der Maske in der Ansicht doppelt auf ein Dokument klicke, wird die Messagebox angezeigt.
Axel
-
Hallo Axel,
danke für die Antwort. Es liegt hierbei wahrscheinlich an dem DoppelKlick. Bei einem Einfachklick wird der Event nicht gefeuert. Wenn ich aber nun DoppeltKlicke öffnet sich das Dokument in einem neuen Fenster und der Event wird gefeuert. Das möchte ich aber verhindern. Zur Not könnte ich den Doppelklick nutzen, aber das Dokument muss sich im Frame öffnen.
Gruss,
Manuel
-
Setze doch das Targetframe für doppelklicks in der Embedded Ansicht auf deinen Frame
-
also im QueryOpenDocument halte ich das für relativ unsicher... Zumal Du dann bei jeder neuen Ansicht, die die Dummies anzeigt, wieder ans QueryOpenDocument denken musst...
ich löse sowas immer im QueryOpen der Dummy- Maske:
Echt- Dokument öffnen und QueryOpen mit Continue = False abbrechen...
HTH
Tode
-
ich löse sowas immer im QueryOpen der Dummy- Maske:
Echt- Dokument öffnen und QueryOpen mit Continue = False abbrechen...
Hi Tode,
das hab ich nun ausprobiert, aber wenn ich im QueryOpen der Maske versuche das Original-Dokument zu Öffnen bekommen ich die Meldung
"Property or Method is not available during QueryOpen: EditDocument".
Kann es sein, dass es an dem FrameSet liegt ?
Danke,
Manuel
-
Wie sieht denn dein Code aus?
Axel
-
ohne Code keine Hilfe....
ganz einfache Formel: Woher sollen wir wissen, wo Dein Fehler ist, wenn Du uns nur 2 Methoden irgendwelcher Klassen an den Kopf wirfst, ohne den zugehörigen Code !?
Sollte ws.EditDocument wirklich im QueryOpen nicht verfügbar sein, dann verschieb's ins "PostOpen" und mach dort ein Source.Close mit rein: dann geht zwar für nen Bruchteil der Sekunde die alte Maske auf, aber stören wird das niemanden...
Gruß
Tode
-
Hi nochmal,
das ist der Code der im QueryOpen nicht funktioniert.
Dim ws As New NotesUIWorkspace
Dim s As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim origdoc As NotesDocument
Set db = s.CurrentDatabase
Set doc = Source.Document
Dim op As String
If doc.HasItem("ORIGINALID") Then
If Not doc Is Nothing Then
op = doc.GetItemValue("ORIGINALID")(0)
If op <> "" Then
Set origdoc = db.GetDocumentByUNID(op)
Call ws.EditDocument(True, origdoc , False,,False)
Continue = False
End If
End If
End If
Hab ihn nun verschoben in den PostOpen und Continue = False mit Source.Close
ausgetauscht. Das Öffnen der Originaldokuments funktionert nun. Auf diese Weise leidet zwar die Performance, aber es Funktioniert.
Danke auch allen.