Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: qu1cke am 13.04.05 - 09:45:09

Titel: Fokus für URLOpen und anschließendem Dok.-Close
Beitrag von: qu1cke am 13.04.05 - 09:45:09
Morgen zusammen...

ich war gestern wohl schon zu müde und bin heute noch nicht ausgeschlafen genug, deshalb muß ich Euch mal um Rat fragen, weil ich an mir an einem scheinbar kleinen Prob den Kopf zerbreche  ;D

Ich möchte (mit welchen Mitteln auch immer) ein Dokument in einer Ansicht anklicken und damit ein URLOpen für eine URL, welche im Dok. steht auslösen. Webbrowser soll M$IE sein.

Das Ding geht mit Notesworkspace.URLOpen auch brav in 'nem eigenen Fenster auf - allerdings soll das Dok. ja nicht im Notes-Client aufgehen, deshalb habe ich gleich ein source.close eingebaut.

Problem: Nun geht aber der Fokus wieder auf den Client und das M$IE-Fenster wandert in den Hintergrund. Und genau das soll's nicht.

Mit den Masken-Eigenschaften "URL öffnen" habe ich's auch schon probiert - der gleiche Effekt, der Notes-Client kommt immer wieder nach vorne - ich komm einfach ned weiter.

Geht der Aufruf vielleicht auch, ohne das Dokument zu öffnen?

<Verzweifelung>
Helft mir bitte!!! Ich glaube ich bin zu blöd...
</Verzweifelung>

Grüße
René
Titel: Re: Fokus für URLOpen und anschließendem Dok.-Close
Beitrag von: TMC am 13.04.05 - 21:43:04
Hmm, ohne das Verhalten (Browser öffnet sich im Hintergrund und nicht im Vordergrund) überprüft zu haben:
Wenn dem so ist dann hilft meines Erachtens nur noch eine Umsetzung per WinApi.

Ich glaube zu wissen, dass da GetDesktopWindow der Library "user32" hier hilft.
Zumindest im Zusammenhang mit der Function ShellExecute der Library 'shell32'. Dort ist der 1. Parameter das Ziel-Fenster.
Titel: Re: Fokus für URLOpen und anschließendem Dok.-Close
Beitrag von: TMC am 13.04.05 - 21:48:59
Habs jetzt doch getestet  ;)

Ich habe eine normale Notes-DB. In ein Dokument in das Text-Feld Title schreibe ich "http://www.atnotes.de".

In einer View habe ich einen Button. Dieser enthält folgende Formel:
Code
_URL := Title;
@URLOpen(_URL)
Title ist wie gesagt der Feldname, der die URL enthält.

Klappt wunderbar: Bei Button-Klick öffnet sich der Browser (bei mir Firefox, weil Standard-Browser) im Vordergrund und www.atnotes.de wird geladen.
Titel: Re: Fokus für URLOpen und anschließendem Dok.-Close
Beitrag von: MartinG am 13.04.05 - 21:57:36
So wie Du (Matthias) habe ich es auch in unserer Weblinkdatenbank. Das einzige was ein wenig unschön ist, das ich es noch nicht hinbekommen habe das Notes-Dokument hinterher wieder zu schliessen...
Titel: Re: Fokus für URLOpen und anschließendem Dok.-Close
Beitrag von: TMC am 13.04.05 - 22:00:30
@Martin:
Der gerade getestete Button ist bei mir in einer Ansicht. User wählt ein Dokument und klickt auf den Button. Das Dokument öffnet sich dadurch nicht (ND 6.5.3).
Rufst Du das von einer Ansicht aus auf oder von einem geöffneten Dok?

*Edit*
Wenn ich folgenden Code in einem Aktions - Masken-Button habe:
Zitat
_URL := Title;
@Command([FileCloseWindow]);
@URLOpen(_URL)
dann öffnet sich mein Standard-Browser Firefox im Vordergrund, und das geöffnete Notes-Dokument wird geschlossen.
Titel: Re: Fokus für URLOpen und anschließendem Dok.-Close
Beitrag von: MartinG am 13.04.05 - 23:16:48
Vielleicht bin ich auch bescheuert, aber bei mir geht dann gleich die ganze DB zu...
Titel: Re: Fokus für URLOpen und anschließendem Dok.-Close
Beitrag von: Semeaphoros am 13.04.05 - 23:40:11
Das wäre aber nur nachvollziehbar, wenn Du das in der Ansicht und nicht im Dokument laufen hast?
Titel: Re: Fokus für URLOpen und anschließendem Dok.-Close
Beitrag von: TMC am 13.04.05 - 23:51:40
Genau. Martin, schreib doch mal wo Du welchen Code ausführst. Ich habe hier ja unterschiedliche Formeln gepostet, einmal für View und einmal für Dokument/Maske (also mit und ohne @Command([FileCloseWindow])).
Titel: Re: Fokus für URLOpen und anschließendem Dok.-Close
Beitrag von: Driri am 14.04.05 - 09:55:00
Naja, wenn man das Dokument im Frameset öffnet, würde [FileCloseWindow] doch die komplette DB schließen, oder ?
Titel: Re: Fokus für URLOpen und anschließendem Dok.-Close
Beitrag von: Semeaphoros am 14.04.05 - 10:21:03
Das könnte sein (weiss ich jetzt einfach mal nicht .... ). Ich bin von einer "nackten" Notes-Konstellation ausgegangen, Matthias offensichtlich auch
Titel: Re: Fokus für URLOpen und anschließendem Dok.-Close
Beitrag von: Driri am 14.04.05 - 12:09:05
Das war auch nur eine Vermutung, ausprobiert hab ich das selber auch nicht.  ;)
Titel: Re: Fokus für URLOpen und anschließendem Dok.-Close
Beitrag von: qu1cke am 14.04.05 - 14:18:12
Mit 'nem Aktions-Button geht das ganze wie gewünscht. ich will aber keinen Button, sondern den Link im Browser öffnen, wenn ich das Dokument in der Ansicht anklicke. kann man sich im QueryDocumentOpen der Ansicht vielleicht irgendwie das gewählte Dok zurückgeben lassen?

Hm, wie macht der Manfred D. das in seinem RSS-Reader?
Titel: Re: Fokus für URLOpen und anschließendem Dok.-Close
Beitrag von: TMC am 14.04.05 - 23:47:30
Mit 'nem Aktions-Button geht das ganze wie gewünscht. ich will aber keinen Button, sondern den Link im Browser öffnen, wenn ich das Dokument in der Ansicht anklicke. kann man sich im QueryDocumentOpen der Ansicht vielleicht irgendwie das gewählte Dok zurückgeben lassen?
Hm, wie macht der Manfred D. das in seinem RSS-Reader?

Klar kann man  ;)

Ich bin ja ein LotusScript-Freund, daher würde ich das so machen:
Code
Sub Queryopendocument(Source As Notesuiview, Continue As Variant)
	
	On Error Goto ErrorHandler
	
	Const URL_ITEMNAME$ = "Title"
	
	Dim coll As NotesDocumentCollection
	Dim doc As NotesDocument
	
	Set coll = Source.Documents
	
	Set doc = coll.GetFirstDocument
	If doc Is Nothing Then Error 1001, "Möööp - No document selected !"
	
	Msgbox doc.GetItemValue(URL_ITEMNAME)(0)	
	
GoOut:
	Continue = False 'We do not open the document !	
	Exit Sub
ErrorHandler:
	Select Case Err
	Case 1000-1999: 'trap user-defined errors
		Msgbox Error$, 48, "Fehler"
	Case Else: 'trap runtime-errors
		'*** Error-Routine von Dir ***
	End Select
	Resume GoOut	
End Sub

Das Script gibt Dir in einer Messagebox den Inhalt des Feldes "Title" aus, wenn Du ein Dokument öffnen willst aus einer Ansicht heraus.
Titel: Re: Fokus für URLOpen und anschließendem Dok.-Close
Beitrag von: qu1cke am 15.04.05 - 13:39:03
Hah, das war's - DANKE  :)

Ich war soooo kurz davor - dachte aber eben nur, daß souce.documents alle Dokumente in der Ansicht zurückgibt - und nicht nur das markierte.

Tztz... Hätte ich mal nachgelesen.

Für alle anderen hier der (leicht modifizierte) Code zum nachlesen:

Code
Sub Queryopendocument(Source As Notesuiview, Continue As Variant)
	On Error Goto ErrorHandler
	
	Const URL_ITEMNAME$ = "URL"
	
	Dim coll As NotesDocumentCollection
	Dim doc As NotesDocument
	
	Set coll = Source.Documents
	
	Set doc = coll.GetFirstDocument
	If doc Is Nothing Then Error 1001, "No document selected !"
	
	Dim ws As New NotesUIWorkspace
	
	Call ws.URLOpen(doc.GetItemValue(URL_ITEMNAME)(0) )
	
GoOut:
	Continue = False 'We do not open the document ! 
	Exit Sub
	
ErrorHandler:
	Select Case Err
	Case 1000-1999: 'trap user-defined errors
		Msgbox Error$, 48, "Fehler"
	Case Else: 'trap runtime-errors
		Msgbox Error$, 48, "Fehler"
	End Select
	Resume GoOut 
End Sub

Also - Danke noch einmal und ein schönes WE.
René