4D v17

WP Get position

Home

 
4D v17
WP Get position

WP Get position 


 

WP Get position ( targetObj {; layout} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
targetObj  Objekt in Ausschnitt, Referenz auf Element oder 4D Write Pro Dokument
layout  Lange Ganzzahl in Layout des 4D Write Pro Dokuments für die Bewertung: 0 (Standard)= 4D Write Pro Layout, 1 = HTML WYSIWYG
Funktionsergebnis  Objekt in Angabe der Position

Der Befehl WP Get position gibt ein Objekt mit der aktuellen Position von targetObj zurück.

Im Parameter targetObj übergeben Sie:

  • Ausschnitt oder
  • Referenz auf ein Element (Tabelle, Zeile, Absatz, Kopf-, Haupt-, Fußteil, Bild) oder
  • 4D Write Pro Dokument

Der Befehl gibt die Positionsangaben in einem Objekt mit den folgenden Eigenschaften zurück:

Name der EigenschaftTypBeschreibung
AbschnittZahlNummer des ersten Abschnitts, der targetObj überschneidet.
SeiteZahlNummer der ersten Seite, die targetObj überschneidet.
SpalteZahlNummer der ersten Spalte, die targetObj überschneidet. (auf 1 basierend)
ZeileZahlIndex der ersten Zeile, die targetObj überschneidet. (relativ zur Spalte - oder Seite, falls es keine Spalte gibt - auf 1 basierend)
PositionZahlPosition 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:

  • Kopfteile: sichtbar
  • Fußteile: sichtbar
  • Ausdrücke: berechnet und angezeigt
  • Seitenmodus: Seite oder Draft (HTML wysiwyg Ansicht, wie vom Befehl definiert)

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



Siehe auch 

WP PRINT

 
EIGENSCHAFTEN 

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

Dieser Befehl kann in preemptive Prozessen laufen

 
GESCHICHTE 

New
Erstellt: 4D v17

 
ARTIKELVERWENDUNG

4D Write Pro Handbuch ( 4D v17)