4D v17WP Get position |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v17
WP Get position
|
WP Get position ( targetObj {; layout} ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
targetObj | Objekt |
![]() |
Ausschnitt, Referenz auf Element oder 4D Write Pro Dokument | |||||
layout | Lange Ganzzahl |
![]() |
Layout des 4D Write Pro Dokuments für die Bewertung: 0 (Standard)= 4D Write Pro Layout, 1 = HTML WYSIWYG | |||||
Funktionsergebnis | Objekt |
![]() |
Angabe der Position | |||||
Der Befehl WP Get position gibt ein Objekt mit der aktuellen Position von targetObj zurück.
Im Parameter targetObj übergeben Sie:
Der Befehl gibt die Positionsangaben in einem Objekt mit den folgenden Eigenschaften zurück:
Name der Eigenschaft | Typ | Beschreibung |
Abschnitt | Zahl | Nummer des ersten Abschnitts, der targetObj überschneidet. |
Seite | Zahl | Nummer der ersten Seite, die targetObj überschneidet. |
Spalte | Zahl | Nummer der ersten Spalte, die targetObj überschneidet. (auf 1 basierend) |
Zeile | Zahl | Index der ersten Zeile, die targetObj überschneidet. (relativ zur Spalte - oder Seite, falls es keine Spalte gibt - auf 1 basierend) |
Position | Zahl | Position in der Zeile mit dem ersten Zeichen targetObj (auf 1 basierend) |
Wenn targetObj ein leerer Bereich ist, gibt WP Get position die Position am Anfang des Ausschnitts zurück.
Wenn targetObj auf einen Text im Kopf- oder Fußteil verweist, gibt WP Get position die Position zurück, wo Kopf- und Fußzeile im ersten Abschnitt/Seite angezeigt werden.
Wenn targetObj auf ein verankertes Bild verweist (das auf mehreren Seiten wiederholt werden kann), gibt WP Get position die Position zurück, wo das Bild im ersten Abschnitt/Seite verankert ist.
Mit dem optionalen Parameter Layout kann die HTML wysiwyg Ansicht für die targetObj Bewertung gesetzt werden. Sie können eine der folgenden Konstanten aus dem Thema "4D Write Pro" übergeben:
Konstante | Typ | Wert | Kommentar |
wk 4D Write Pro layout | Lange Ganzzahl | 0 | Standardmäßige 4D Write Pro Ausgabe mit ein paar spezifischen Stilattributen |
wk html wysiwyg | Lange Ganzzahl | 1 | In dieser Ausgabe werden die erweiterten 4D Write Pro Attribute entfernt, die nicht mit allen Browsern kompatibel sind. |
Ohne den Parameter layout wird standardmäßig das 4D Write Pro Layout verwendet.
WP Get position verwendet die gleichen Einstellungen zur Anzeige wie der Befehl WP PRINT:
Wenn targetObj in einem 4D Write Pro Formularbereich angezeigt wird, stellen Sie sicher, dass die Anzeigeeinstellungen des Bereichs mit den Einstellungen für den Befehl übereinstimmen, um konsistente Informationen zu erhalten. Beachten Sie auch, dass 4D Write Pro das Dokument "klonen" muss, um das Layout bei jedem Aufruf des Befehls zu berechnen, was zeitaufwändig sein kann. Aus Performance-Gründen empfiehlt es sich in diesem Fall, das Dokument erst offline zu erstellen und anschließend in den Formularobjektbereich zu kopieren.
Sie möchten die Seitennummer von "Range" wissen:
C_OBJECT($range;$rangePosition)
$range:=WP Get selection(WParea) //Range aus einer Benutzerauswahl
$rangePosition:=WP Get position($range;wk 4D Write Pro layout)
ALERT("First page number in selection is "+String($rangePosition.page))
Sie möchten den Text auf der ersten und letzten Seite des Dokuments blau einfärben:
C_LONGINT($nbPages)
C_OBJECT($body)
C_COLLECTION($_paragraphs)
$nbPages:=WP Get page count([DOC]Sample)
$body:=WP Get body([DOC]Sample)
$_paragraphs:=WP Get elements($body;wk type paragraph)
For each($paragraph;$_paragraphs)
$info:=WP Get position($paragraph)
If($info.page=1)|($info.page=$nbPages) //Abschnitte der ersten und letzten Seite in blau
WP SET ATTRIBUTES($paragraph;wk text color;"blue")
Else //Abschnitte anderer Seiten in schwarz
WP SET ATTRIBUTES($paragraph;wk text color;"black")
End if
End for each
Beim Erstellen eines Dokuments möchten Sie Aufteilungen in Absätze vermeiden:
C_OBJECT(WParea;$body)
C_COLLECTION($_paragraphs)
WParea:=WP New
$body:=WP Get body([DOC]Sample)
$_paragraphs:=WP Get elements($body;wk type paragraph)
For each($paragraph;$_paragraphs)
$insert:=WP New($paragraph)
//aktuellen Bereich und Seitenzahl speichern
$rangeBefore:=WP Create range(WParea;wk end text;wk end text)
$info:=WP Get position($rangeBefore)
$memoPage:=$info.page
//den Inhalt einfügen, den Bereich unverändert lassen
WP INSERT DOCUMENT($rangeBefore;$insert;wk append;wk exclude from range)
//Position nach dem Einsetzen prüfen
$rangeAfter:=WP Create range(WParea;wk end text;wk end text)
$info:=WP Get position($rangeAfter)
If($memoPage#$info.page) // Wenn sich die Seite geändert hat, einen Seitenumbruch einfügen.
WP INSERT BREAK($rangeBefore;wk page break;wk replace)
End if
End for each
Produkt: 4D
Thema: 4D Write Pro Programmiersprache
Nummer:
1577
Erstellt: 4D v17
4D Write Pro Handbuch ( 4D v17)