Avatar billede mmmtm Nybegynder
14. januar 2004 - 11:58 Der er 10 kommentarer og
1 løsning

Opret hotspot i lotus script

Når en bruger har markeret en tekst i et dokument (editmode), vil jeg gerne kunne oprette et hotspot på teksten i lotus script. Men jeg kan intet finde i @ eller script, der tilnærmelsesvis kan dette. Nogle gode ideer ?
Avatar billede pr0gm4n Nybegynder
14. januar 2004 - 12:47 #1
Jeg tror du er nødt til at kaste dig over noget 3. parts software for at kunne det. Med fare for at blive beskyldt for at reklamere: Midas fra http://www.geniisoft.com/ kan de mest utrolige ting.

En anden mulighed, som jeg selv har brugt med held, er at skrive en lille HTML-fil indeholdende linket som en <a href osv... og så importerer denne HTML-fil til dokumentet. Så kan Notes nemlig godt finde ud af at lave hotspots. Men den her mulighed er kun brugbare såfremt hotspottet skal være et link.
Avatar billede gudmund_nielsen Nybegynder
14. januar 2004 - 13:05 #2
ok
Avatar billede mmmtm Nybegynder
14. januar 2004 - 14:05 #3
pr0gm4n> Din html-fil indeholder så et statisk link ?
Når brugeren har markeret teksten der skal linkes fra, vises der en dialogbox med de dokumenter der kan linkes til. Der vælges et (eller et vedhæftet bilag på et dokument) hvorefter at adressen (genereret på dokumentet og i noget script) hentes, og det er denne adresse der skal være i feltet "værdi" på hotspot egenskaber.
Pt. "nøjes" jeg med at hente adressen til udklipsholderen via noget API til windows, -men brugeren skal stadig markere teksten>opret hotspot>og paste værdien ind i feltet, og det er dette jeg godt vil springe over.
Avatar billede pr0gm4n Nybegynder
14. januar 2004 - 17:30 #4
Jeg er ikke helt sikker på at jeg forstår hvad du mener :-s

Men i den løsning, hvor ovenstående 'hack' blev brugt, der oprettede jeg en ny HTML-fil hver gang, netop således at HTML'en indeholdt et link til det rigtige. Linket var med andre ord dynamisk forstået således at det skiftede fra dokument til dokument; men det var ikke så dynamisk som det kunne blive hvis man benyttede et hotspot med kode bag.

Blev du klogere af det?
Avatar billede mmmtm Nybegynder
14. januar 2004 - 19:57 #5
Ikke helt klog (men det er jeg jo heller ikke i forvejen :-)
Ku' man se koden til det "HTML halløj" ? Det kræves nok for at blive lidt klogere..
Avatar billede pr0gm4n Nybegynder
15. januar 2004 - 12:27 #6
Hmmmm hvad blev der af det jeg sagde 'send' til??? Nu ved i hvorfor dette måske står her to gange....

Jeg kunne ikke finde min oprindelige kode, men har strikket noget lignende sammen, der viser princippet. Du skal selvfølgelig arbejde lidt med, hvad der skal stå i <a href... og der skal også puslet med hvor præcis der skal importeres i dokumentet. Vær i denne forbindelse obs på at hvis du bruger en knap - på dokumentet så flyttes fokus. Hvis du derimod benytter en 'action' så holdes cursorens position, hvilket jo er en fordel når man skal indsætte noget i teksten.

Sub Click(Source As Button)
    Dim fileNum As Integer
    Dim fileName As String
   
    fileNum% = Freefile()
    fileName$ = "d:\hotspot.html"
   
    ' Lav HTML-fil
    Open fileName$ For Output As fileNum%
    Print #fileNum%, |<HTML><HEAD></HEAD><BODY>|
    Print #fileNum%, |<a href = "http://www.eksperten.dk">Eksperten - stedet for viden</a>|
    Print #fileNum%, |</BODY></HTML>|
    Close fileNum%
   
    'Importer HTML-fil
    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Set uidoc = workspace.CurrentDocument
    Call uidoc.GotoField("Body")
    Call uidoc.Import("HTML File", fileName$)
    'Slet filen igen
    Kill fileName$
End Sub
Avatar billede mmmtm Nybegynder
15. januar 2004 - 14:49 #7
Genialt !. MEN: det er et must at linket bliver sat ind, der hvor markøren står, og uanset om jeg laver det som en action/handling (med en knap i menulinjen) eller som en agent (der aktiveres via actions/handlinger)ryger linket ind forest i feltet ? (Hvis jeg sætter koden direkte på en knap, kan jeg ikke få fat i den markede tekst med uidoc.GetSelectedText(Body$) - men det betyder nu ikke noget)
Avatar billede pr0gm4n Nybegynder
15. januar 2004 - 17:16 #8
Tak for ordet 'genialt' jeg syntes også det var ret smart dengang jeg fandt på det, omend noget af credit skal sendes til en eller anden russer, der havde lavet noget lignende; men som vist ikke selv havde set perspektivet i det.

-----

Fjern 'Call uidoc.GotoField("Body")' - det er den der gør at du havner i starten af feltet. Og husk så at sætte koden på en action - den vil ikke virke på en knap, da den vil forsøge at importerer ind i knappe.
Avatar billede mmmtm Nybegynder
15. januar 2004 - 19:34 #9
Genialt igen igen!. Jeg var selv nået dertil, hvor jeg overvejede at lægge noget html et eller andet sted, men var gået død på det - så det er jo skønt at tanken var god nok. Lige et tillægsspørgsmål - jeg går ud fra at det er lokalt at d:/hotspot.html oprettes/slettes, og ikke på serveren ?
Avatar billede pr0gm4n Nybegynder
16. januar 2004 - 02:31 #10
jeps
Avatar billede pr0gm4n Nybegynder
16. januar 2004 - 02:34 #11
lokalt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester