Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v20 R7
WP SET LINK

WP SET LINK 


 

WP SET LINK ( targetObj ; linkObj ) 
Parameter Typ   Beschreibung
targetObj  Objekt in Range, Element oder 4D Write Pro Dokument
linkObj  Objekt in Wert des Hyperlink

Der Befehl WP SET LINK setzt eine Hyperlink Referenz in targetObj. Unterstützt werden Links zu URLs, 4D Methoden und Lesezeichen. Der Link löst eine Aktion aus, wenn der Benutzer darauf klickt (oder zum Öffnen einer URL bei Text im Nur-Lesen Modus über die Tastenkombination Strg+Klick unter Windows, Cmd+Klick auf macOS).

In targetObj übergeben Sie das 4D Write Pro Objekt zum Setzen des Link. Sie können folgendes übergeben:

  • Range
  • Element (Tabelle / Zeile / Absatz / Hauptteil / Kopfteil / Fußteil / Abschnitt / Unterabschnitt) oder
  • 4D Write Pro Dokument

Übergeben Sie z.B. einen Kopfteil, wird sein gesamter Inhalt als Hyperlink angezeigt. Setzen Sie Links in Ihr Dokument ein, wendet 4D Write Pro folgende Regeln an:

  • Setzen Sie einen Link in ein Objekt targetObj mit mehreren Absätzen, werden mehrere separate Links definiert.
  • Setzen Sie einen Link in ein Objekt targetObj, das bereits Links enthält:
    • werden alle vorhandenen Links entfernt, die vollständig im Objekt targetObj enthalten sind und der neue Link auf das targetObj angewendet.
    • ist ein Link teilweise ausgewählt (er überschneidet das Objekt targetObj), wird er reduziert, so dass der externe Teil den vorigen Link beibehält. Der neue Link wird auf das Objekt targetObj angewendet.

Im Parameter linkObj übergeben Sie ein Objekt mit der Beschreibung des Hyperlink. Er enthält jeweils eine der folgenden Eigenschaften (außer parameter, der zusammen mit method verwendet werden kann):

EigenschaftTypBeschreibungHyperlink Aktion
urlTextZiel für URL vom Typ Hyperlink (codierte url).
  • Verweist auf eine Standard Web Adresse (http oder https://website, mailto:abc@xyz.com, etc.): Öffnet die URL in der standardmäßigen Applikation (in der Regel ein Browser)
  • Verweist auf einen Dateipfad (absolut oder relativ zur 4D Strukturdatei). Bei Referenz auf eine Datei .4wp oder .4w7 (file://filepath oder filepath/file.4wp): Lädt und ersetzt das aktuelle Dokument. Bei Referenz auf andere Dateitypen: Öffnet die Datei in der standardmäßigen Applikation des Systems für den jeweiligen Dateityp.
bookmarkTextName des LesezeichensGreift auf das angegebene Lesezeichen im aktuellen Dokument zu. (Siehe unter Befehle für Lesezeichen)
methodTextName der Projektmethode - method muss existieren und über den Befehl SET ALLOWED METHODS zugelassen sein.Führt die 4D Methode bei Anklicken aus. Sie empfängt automatisch zwei Parameter in $1 und $2:
ParameterEigenschaftTypBeschreibung
$1TextName des 4D Write Pro Bereichs
$2Objekt
methodTextName der 4D Methode
parameterText | ZahlBenutzerparameter, die über parameter an die Methode gesendet werden (optional, siehe unten)
rangeObjektRange von targetObj
parameterText | ZahlWird nur für Link vom Typ method verwendet, ist nicht zwingend, wenn die Methode keine Parameter erfordert. Enthält einen zusätzlichen Parameter zum Senden an die Methode.Wird im Parameter $2. innerhalb der Methode empfangen

Hinweise:

  • 4D Write Pro akzeptiert nur gültige (codierte) URLs. Sonderzeichen in Links werden nicht übersetzt. Sind Sonderzeichen erforderlich, wie " " (Leerzeichen) - also %20 anstelle des Leerzeichens, müssen Sie diese explizit codieren. Ist der Link ungültig, wird ein Fehler generiert.
  • Links zu 4D Methoden werden aus 4D Write Pro Dokumenten entfernt, wenn sie im Format HTML, MIME HTML oder .docx exportiert werden.
  • Wie Sie einen Link aus targetObj entfernen können, erfahren Sie im Abschnitt Befehle für Links.

Im Fußteil Ihres Dokuments einen Link zu Ihrer Website einfügen:

 C_OBJECT($footer)
 $footer:=WP Get footer(WPArea;1)
 WP SET TEXT($footer;"Please visit our website";wk replace)
 WP SET LINK($footer;New object("url";"http://www.4d.com"))

Eine Übersichtstabelle mit Links zu allen Lesezeichen in Ihrem Dokument erstellen:

 C_LONGINT($i;$n;$p;$memoStart)
 C_OBJECT($range;$link;$toc;$tocRange;$positionInfo;$target)
 C_TEXT($text)
 
 ARRAY TEXT($_bookmarks;0)
 WP GET BOOKMARKS(WParea1;$_bookmarks//Alle Lesezeichen finden
 
 $n:=Size of array($_bookmarks)
 If($n>0)
    $tocRange:=WP Text range(WParea1;wk start text;wk start text//Den Anfang des Textes finden
    WP INSERT BREAK($tocRange;wk page break;wk append;wk exclude from range//Vor dem Text einen Seitenumbruch einfügen
 
    For($i;1;$n// Die Übersichtstabelle mit Links einfügen
       $range:=WP Bookmark range(WParea1;$_bookmarks{$i})
       $positionInfo:=WP Get position($range)
       $memoStart:=$tocRange.end
       WP SET TEXT($tocRange;Char(Tab)+$_bookmarks{$i}+Char(Tab)+String($positionInfo.page);wk append;wk include in range)
 
       $target:=WP Text range($tocRange;$memoStart+1;$memoStart+1+Length($_bookmarks{$i}))
       $link:=New object("bookmark";$_bookmarks{$i})
       WP SET LINK($target;$link)
       WP INSERT BREAK($tocRange;wk line break;wk append;wk include in range)
    End for
 End if
 

Auf jeden "4D" String im Dokument einen Link zu einer 4D Methode setzen:

 C_TEXT($text,$find)
 C_LONGINT($p)
 C_OBJECT($range;$link)
 
 $text:=WP Get text(wpArea;wk expressions as value//Findet allen Text im Dokument
 
 $find:="4D" //Ziel für Link
 
 $p:=Position($find;$text//Durch den Text gehen zum Finden aller Instanzen des Ziels
 If($p>0)
    $range:=WP Text range(wpArea;$p;$p+Length($find)) //Länge des Ziels setzen
  //Das Link Objekt erstellen
    $link:=New object("method";"myAlert";"parameter";"4D rocks!") //Authorisierung mit SET ALLOWED METHODS nicht vergessen!  
 
    WP SET LINK($range;$link)
 End if



Siehe auch 

Blog: Links in 4D Write Pro documents
WP Get links

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: 4D Write Pro Programmiersprache
Nummer: 1642

Dieser Befehl kann in preemptive Prozessen laufen

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v17 R5

 
ARTIKELVERWENDUNG

4D Write Pro Handbuch ( 4D v20 R7)