Hallo zusammen.
Ich habe in Script einen Agenten geschrieben, der mir ein paar Text-Hotspots erzeugt.
With nrtItem
Call .AppendParagraphStyle(nrtpsParagraphStyle)
Set it = collLinks.Iterator
While it.hasNextElement
Set ndCurr = it.nextElement
Call .AppendStyle(nrtsStyle)
Call .AppendDocLink(ndCurr, ndCurr.GetItemValue("Subject")(0), ndCurr.GetItemValue("Subject")(0))
Call .AddNewline(1)
Wend
Call .Compact
Call .Update
End With
Leider wird die standardmäßig grüne Umrandung angezeigt:
(http://unitedserver.de/temp_images/umrandungshotspots.jpg)
Was ich jetzt gerne realisieren möchte, ist, die Hotspots statt der Umrandung in blauer Farbe und unterstrichen hinzubekommen. Die Unterstreichung bekomme ich mit "nrtsStyle.Underline = true" mit Sicherheit hin, nur das Entfernen der Umrandung will nicht klappen.
Habt ihr eine Idee?
Gruß
Alexander
Toll, wahrscheinlich wieder so ein Fall, wo man nur über die API rankommt. Dort gibt es nämliche ein:
LNHotspot::SetShowBorder
Controls whether the Notes UI displays a box around this hotspot.
Syntax
void SetShowBorder( LNBOOL border )
UPDATE:
habe hier noch was auf LDD gefunden:
http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/0c2ce9a1305dac0585256ebe0057f8f6?OpenDocument
und hier:
http://www-10.lotus.com/ldd/nd6forum.nsf/c21908baf7e06eb085256a39006eae9f/4bb3c6522d444dcd85256e0b0047d2bf?OpenDocument
Ich würde es anhand der gesammelten Erkenntnisse folgendermaßen machen:
Voraussetzung ist, daß die Hotspots am Ende des RT-feldes angehängt werden ( Einfügen geht ja bekanntlich ( noch ) nicht mit Notes Boardmitteln ;D )
- erzeuge ein temporäres Dokument in der Datenbank mit folgendem Code
Sub Click(Source As Button)
link$ = "LDD"
url$ = "http://www.notes.net"
strSUBJECT = "Hallo Welt"
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Dim i As Integer
Dim stream As NotesStream
Set stream = session.CreateStream
stream.WriteText {<?xml version='1.0' encoding='utf-8' ?>
<database xmlns='http://www.lotus.com/dxl' version='6.0'>
<document form='test'>
<item name='Subject'><text>} & strSUBJECT & {</text></item>
<item name='Body'>
<richtext>}
For i = 1 To 10
stream.WriteText { <par>
<run>Click on this link: </run>
<urllink showborder='false' href='} & url$ & {'>
<run><font color='system'/>} & link$ & {</run>
</urllink>
</par>}
Next
stream.WriteText {</richtext>
</item>
</document>
</database>}
Dim dmp As NotesDXLImporter
Set dmp = session.CreateDXLIMporter(stream, db)
dmp.Process
End Sub
In der Schleife erzeugst du die erforderlichen Links. Dann hängst du das RichtextFeld aus diesem Dokument an dein bestehendes Dokument an. Anschließend kann das tempDoc gelöscht werden.
Also, hier das Versprochene:
Ich habe einfach das Dokument genommen und noch mal per XML bearbeitet:
Dim stream As NotesStream
Dim importer As NotesDXLImporter
Dim sXML As String
Dim ns as new NotesSession
Dim exporter As NotesDXLExporter
Set exporter = ns.CreateDXLExporter
sXML= exporter.Export(ndSelected)
sImportantString = sReplaceString(sXML, "showborder='true'", "showborder='false'")
Set stream = ns.CreateStream
Set importer = ns.CreateDXLImporter
importer.DocumentImportOption = DXLIMPORTOPTION_UPDATE_ELSE_IGNORE
Call importer.import(sXML, CurrentDB)
Somit werden alle Hotspots von ihren Umrandungen befreit ;D
- und es werden keine neuen Dokumente erzeugt.
Gruß
Alexander