Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: skywook am 05.03.14 - 14:18:17

Titel: Link-Hotspot
Beitrag von: skywook am 05.03.14 - 14:18:17
Hallo,

ich versuche grad einen Link auf eine Datei bzw VZ per Script zu erstellen.

Mit rtitem.AppendText( "file:\\" & "c:\test.txt") funktioniert die Sache sehr gut, aber dann wird als Link der Dateipfad "file:\\c:\test.txt" angezeit. Ich hätte da gerne z.B. "Link zur Datei" stehen.

Kann man per Script keinen Link-Hotspot erstellen? Habe im Forum leider nichts dazu gefunden.
Titel: Re: Link-Hotspot
Beitrag von: Dr 84 am 05.03.14 - 14:36:40
Versuche mal mit  rtItem.AppendDocLink
Titel: Re: Link-Hotspot
Beitrag von: koehlerbv am 05.03.14 - 15:00:30
"Versuchen" kann man das, aber es endet in einem Type Mismatch.
Titel: Re: Link-Hotspot
Beitrag von: pram am 05.03.14 - 20:28:49
Den Link als HTML erstellen (<a href=...>Link zur Datei</a>) und dann anfügen.
Wie das geht, habe ich hier beschrieben:
http://atnotes.de/index.php/topic,52040.0.html
Zitat
- Durch Setzen von session.convertMime = true wird beim nächsten Zugriff auf das Item (über doc.getFirstItem) das Mime-Item von Notes wieder in einen Richtext konvertiert. Dieses Item kann dann an ein anderes Richtext-Item angefügt werden.
Damit kann man z.B. speziell formatierte Texte/Links/Bilder/... an ein bestehendes RICHTEXT-Item anhängen.

Gruß
Roland
Titel: Re: Link-Hotspot
Beitrag von: koehlerbv am 05.03.14 - 20:44:15
Nette Spielereien gehen auch via DXL.

Bernhard
Titel: Re: Link-Hotspot
Beitrag von: jo@chim am 06.03.14 - 12:59:50
Hab ich mal fürs uidoc gemacht:

Code
Sub setWeblink(strFile$)
	Dim ws As New NotesUIWorkspace
	Dim uidoc As NotesUIDocument
	descrLink$=strLink$
	Set uidoc = ws.CurrentDocument
	fileNum% = Freefile()
	tmpFile$ = Environ$("temp")+"\~tmpFile.htm"
	Open tmpFile$ For Output As fileNum%
	Print #fileNum%,"<html><a href='" + strFile$ + "'>" + descrLink$ + "</a></html>"
	Close fileNum%
	If uidoc.CurrentField<>mailField$ Then uidoc.GotoField( mailField$ )
	Call uidoc.Import("HTML File",tmpFile$)
End Sub

Aufruf mit

Code
Sub Click(Source As Button)
	URL$=Inputbox$("URL:","Internet-Link verknüpfen")
	If URL$<>"" Then Call setWebLink(URL$)
End Sub

Edit: die Feldbezeichnung für das RT-Feld, in die der Link importiert werden soll muss natürlich noch als Konstante gesetzt werden oder als Parameter übergeben werden:

Code
Public Const mailField$="Body"
oder
Code
Sub setWeblink(strFile$, mailField$)
Titel: Re: Link-Hotspot
Beitrag von: jo@chim am 06.03.14 - 13:10:22
Ups, ging ja um Netzwerkdateien:

Code
Sub setFileLink()	
	Dim ws As New NotesUIWorkspace
	Dim uidoc As NotesUIDocument
	n$ = String$(1024, " ")
	ret% = NEMGetFile( 0, n$,"" , dlgTitle$)
	If ret% = 0 Then Exit Sub
	strFile$ = Fulltrim(n$)
	If Mid$(strFile$,2,1)=":" Then strFile$=Fulltrim(GetUNCPath(Left$(strFile$,2)))+Right$(strFile$,Len(strFile$)-2)
	If Left$(strFile$,2)<>"\\" Then Exit Sub
	tmpStrFile$=Escape(strFile$)
	Set uidoc = ws.CurrentDocument
	fileNum% = Freefile()
	tmpFile$ = Environ$("temp")+"\~tmpFile.htm"
	
	Open tmpFile$ For Output As fileNum%
	Print #fileNum%, |<html><meta http-equiv="content-type" content="text/html" charset="iso-8859-1">
	<a href="file:///| +tmpstrFile$ + |" >|+ strFile$ + |</a></html>| 
	Close fileNum%
	If uidoc.CurrentField<>mailField$ Then uidoc.GotoField( mailField$ )
	Call uidoc.Import("HTML File",tmpFile$)
End Sub

In den Declarations in diesem Fall:

Code
Declare Function NEMGetFile Lib "NNOTESWS" Alias "NEMGetFile" _
( Z As Integer, Byval N As Lmbcs String, Byval F As Lmbcs String, Byval T As Lmbcs String ) As Integer
Dim UNC As String * 512
Declare Function WNetGetConnection Lib "mpr.dll" Alias _
"WNetGetConnectionA" _
(Byval lpszLocalName As String, _
Byval lpszRemoteName As String, _
cbRemoteName As Long) As Long

Das müsste man dann halt mit obigem zusammenführen...