Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: cpo am 21.02.03 - 12:42:52

Titel: Dokument mehrfach geöffnet
Beitrag von: cpo am 21.02.03 - 12:42:52
Hallöchen,

ich habe mal wieder ein kleines Problem um dessen Lösung ich mich seit längerer Zeit erfolgreich drücke  8) 8) Dieses Problem taucht eigentlich immer wieder auf und da grad' die Sonne so schön scheint....

Also: Wir haben ein doc A. In dem ist eine Schaltfläche über die doc B geöffnet wird.
In doc B ist eine Schaltfläche, über die man doc A öffnen kann.

Klappt auch alles wunderbar. bis auf den Schönheitsfehler, daß docA zum zweiten mal, also in einem neuen Fenster geöffnet wird...

Ich kann zwar abfragen, ob das doc, was grad geöffnet werden soll, schon geöffnet ist - nur was mache ich dann? Wie kriege ich denn das Fenster nach vorne?

Habe ich da mal wieder ein Brett vorm Kopf  ???

CPO


Titel: Re:Dokument mehrfach geöffnet
Beitrag von: Rob Green am 21.02.03 - 13:00:48
Sowas vielleicht?

NavigateToBackLink  

Kehrt zu dem Dokument zurück, von dem aus das aktuelle Dokument gestartet wurde.
Syntax
@Command([NavigateToBackLink])
Verwendung
Sie öffnen ein Dokument und rufen daraus ein weiteres Dokument auf, indem Sie eine Verknüpfung aktivieren. Schließen Sie anschließend das zweite Dokument, schließt NavigateToBackLink auch die Datenbank, die das zweite Dokument enthält, und kehrt zum ersten Dokument zurück.
Ausführungsreihenfolge
Dieser Befehl wird nur nach der Auswertung der gesamten Formel ausgeführt, unabhängig davon, ob @Command oder @PostedCommand verwendet wird.
Titel: Re:Dokument mehrfach geöffnet
Beitrag von: cpo am 21.02.03 - 14:47:18
Hi Rob,

ich hätte vielleicht erwähnen sollen, daß das alles Script ist... Mit @@ hätte ich -glaub' ich - auch das Problem mit der doppelten Öffnerei nicht.

Ich bräuchte einfach irgendwas, womit ich ein Fenster unter Notes nach vorne holen kann.
So workspace.Window.Kommnachvorne(1)  ;D

CPO
Titel: Re:Dokument mehrfach geöffnet
Beitrag von: Rob Green am 21.02.03 - 14:53:08
ist es denn verboten, @ zu nehmen? Nur weil "alles" Script ist?
Sehe keine Gründe, die dagegen sprechen das Navi-Back zu nehmen, oder hab ich Bretter vor´m Kopf jetzt?
Titel: Re:Dokument mehrfach geöffnet
Beitrag von: eknori am 21.02.03 - 15:07:42
So ganz trivial ist das nicht; kannst du auch meines Wissens nicht mit @@ oder Script lösen. Da mußt du schon die API bemühen

Der folgende Code schaut in der FensterZeile nach. Hier würde ich nach dem Subject des Mail suchen.

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (Byval lpClassName&, Byval lpWindowName As String) As Long

 ' in the event click or initialize o, etc..

 Dim winHwnd As Long
 Dim RetVal As Long
 winHwnd = FindWindow(0, "Inhalt des Feldes Subject")
 If winHwnd <> 0 Then
    Öffne das Fenster
 Else
   Lass es und öffne das neue Dokument
 End If

In den Vordergrund kannst du ein Fenster mit

Declare Function SetWindowPos& Lib "user32" (ByVal hwnd&, ByVal WndInsertAfter&, ByVal x&, ByVal y&, ByVal cx&, ByVal cy&, ByVal wFlags&)

genaue syntax habe ich jetz nicht parat, aber ist zumindest schon mal ein Ansatz

eknori
Titel: Re:Dokument mehrfach geöffnet
Beitrag von: Rob Green am 21.02.03 - 15:09:23
@eke, Du kennst doch im R5 auch diese "Back" und "For" Pfeile ganz oben rechts, wenn Du in der Help.nsf zB Docs navigierst. Auf welcher Basis laufen die Dinger, denn ist ja wie im Browser die History (nur halt Notes Native)
Titel: Re:Dokument mehrfach geöffnet
Beitrag von: cpo am 21.02.03 - 15:10:26
Neeee, grundsätzlich mag ich @@ auch  :D nur ist das Problem nicht ganz so einfach, wie oben beschrieben...
Ich muß nämlich erstmal an die richtige ID des zu öffnenden docs kommen, dann noch diverse Sachen prüfen, kleinere Katastrophen verhindern und kann dann mein doc öffnen.
Das ist alles schon fertig - in Script...

Außerdem würde NavigateBack auch nicht klappen, weil es natürlich auch passieren kann, daß ich gar nicht von A nach B und wieder nach A will, sondern einfach nur von B nach A  :P

CPO
Titel: Re:Dokument mehrfach geöffnet
Beitrag von: cpo am 21.02.03 - 15:15:51
@eknori,

da hab ich es jetzt 7 Jahre lang geschafft, mich vor API-Zeugs zu drücken  ::) ::) ::) und dann kommst Du mit sowas  :-\ :-\ :-\... Und dann klingt das auch noch genau nach dem was ich suche   ;D ;D ;D

Danke, CPO
Titel: Re:Dokument mehrfach geöffnet
Beitrag von: cpo am 21.02.03 - 17:28:53
Ok, ich schaff's nicht. Habe brav die Declaration kopiert, das Click-Event kopiert und um Deine Texte Messageboxen gebaut.

Leider kommt immer die "Lasset sein"-Box, weil der winhwnd auf 0 steht. (Ja, ich habe die Fenstertitel korrekt übergeben)

Das sah ja eigentlich nach copy & paste aus *schluchz*... Gibt es irgendwas ganz grundsätzliches, was ich vergessen habe?

CPO ***die jetzt Feierabend macht***

Ein schönes Wochenende!
Titel: Re:Dokument mehrfach geöffnet
Beitrag von: eknori am 21.02.03 - 17:41:20
@cpo:

so einfach ist die Sache nicht, habe den Code auch nur mal eben so gepostet. Da sind latürnich noch ein paar Dinge zu berücksichtigen.
Wenn ich die Zeit finde, werde ich mir das am WE mal vornehmen. War auch nur so ein Gedanke, ob das alles funktioniert, wie es soll... ???

eknori
Titel: Re:Dokument mehrfach geöffnet
Beitrag von: eknori am 21.02.03 - 17:55:36
schaue dir mal den Fenstertitel genauer an. da wirst du sehen, daß ja nicht nur das Subject drin steht sondern Subject + Lotus Notes oder so.
Also bedeutet das , daß du den Suchstrind in

winHwnd = FindWindow(0, "Inhalt des Feldes Subject")

um diesen SUFFIX ergänzen musst, da hier nach der exacten übereinstimmung gesucht wird.

Klaro ??

Dann funktioniert auch die If - Abfrage

Nicht verzweifeln, das braucht seine Zeit

eknori
Titel: Re:Dokument mehrfach geöffnet
Beitrag von: eknori am 21.02.03 - 18:31:26
Nicht verfzweifeln, das braucht Zeit...

Offensichtlich auch bei mir zu erkennen, daß sich Notes Dokumente anders verhalten als Windows Fenster.

Mite der von mir geschilderten Methode kannst du das bis zum St. Nimmerleins Tag probieren und wirst keinen Erfolg haben.

das geöffnete Dokument erzeugt einen sog. Child Prozeß innerhalb des Parent Window. Wie Notes das steuert, hab ich momentan nicht drauf. Ich weiß aber eines ganz gewiss: Ohne API wird das nicht gehen.

Oh Mann, Asche über mein Haupt  :-[ :-[ :-[ :-[ :-[ :-[ :-[
Titel: Re:Dokument mehrfach geöffnet
Beitrag von: cpo am 24.02.03 - 12:29:02
Hi eknori,

hast Du für mich auch noch etwas Asche übrig? Ich hab' am WE in irgendwelchen Codelibs gesucht und tatsächlich etwas gefunden, womit ich das aktive Fenster finde (wie Du sagtest: "Kinderfenster"  ;D)
Leider ist:
a) diese Programmierung so zusammengestoppelt, daß ich da erstmal sortieren muß
b) alles hochgradig absturzgefährdet (eigentlich immer mit debugger)
c) fehlt mir die Funktion, zum "Nach vorne mit dem Fenster"

Sobald ich 10 min. Zeit habe, ordne ich mal den Code zum "Fenster suchen" und stelle ihn hier rein.

Bis dahin
CPO