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

Home

 
4D v20 R7
Per Programmierung auf Dokumentinhalte zugreifen

Per Programmierung auf Dokumentinhalte zugreifen  


 

 

4D Write Pro bietet einen ganzen Satz Befehle, um Attribute für Text und Bilder in Ihren Dokumenten zu verwalten. Damit können 4D Entwickler für 4D Write Pro Dokumente eigene Benutzeroberflächen gestalten, z.B. mit Schaltflächen, Menüs, Optionsfeldern. Befehle lassen sich auf das ganze Dokument oder spezifische Teilbereiche (Ranges) anwenden, die entweder durch eine Benutzerauswahl oder über eigene Werte definiert werden. Verfügbare Eigenschaften sind Einheit des Dokuments, Ränder, Füllen, Hintergrund, Einstellungen für Absatz, Farben, Schriften, Schriftstile und Bildeigenschaften.

Das Objekt der Objektbibliothek 4D Write Pro Area beispielsweise verwendet einige dieser Funktionalitäten für eine ansprechende Benutzeroberfläche in 4D Write Pro:

Mit 4D Write Pro können Sie Inhalte des Dokuments per Programmierung auswählen und verwalten. Da der ausgewählte Inhalt Text, Bilder, Tabellen, etc. enthalten kann, sowie nicht-sichtbare Tags für Formatierung, arbeitet 4D Write Pro mit Ranges.

Ein "Range" ist ein Objekt, das einen Teil in einem 4D Write Pro Dokument darstellt.

  • Ein Range aus Zeichen, Absätzen, Bildern oder Tabellen wird über die Position von Zeichen im übergeordneten Dokument definiert,
  • Ein Range aus Zellen, Spalten und Zeilen wird über die Position von Zellen definiert und mit der übergeordneten Tabelle verankert.

Er dient zum Festlegen von Elementen, die ausgewählt werden sollen oder zum Setzen von Attributen in einem Teil des Dokuments (über die Funktionen WP GET ATTRIBUTES und WP SET ATTRIBUTES).

Es gibt verschiedene Typen von "Ranges". Sie können den jeweiligen Typ über das Attribut wk type (nur lesbar) bestimmen. Jeder Range wird über verschiedene private Attribute definiert:

Konstante Wert Kommentar
wk end end (Nur lesbares Attribut für Range). Range Ende Versatz. Wert: Lange Ganzzahl
wk owner owner (Nur lesbares Attribut) Eigentümer des Range/Objekts/Abschnitts/Unterabschnitts (Referenz zum Dokument von Abschnitt/Unterabschnitt). Wert: Objekt
wk start start (nur lesbares Attribut)
  •  Range Start Versatz oder
  • Index für Textbeginn von Abschnitt/Unterabschnitt im Hauptteil des Dokuments (für Unterabschnitt Index für Textbeginn des übergeordneten Abschnitts)
Wert: Lange Ganzzahl
wk type type (Nur lesbares Attribut) Typ des 4D Write Pro Objekts. Mögliche Werte:
  • wk type default: Range oder Abschnitt ohne definierten Typ
  • wk type paragraph: Rangetyp Abschnitt
  • wk type image: Bild (eingebunden oder verankert)
  • wk type container: z.B. Kopf- oder Fußteil
  • wk type table: Referenz auf Tabelle

Nur für Ranges von Zellen, Spalten und Zeilen:

  • wk type table row: Referenz auf Tabellenzeile
  • wk type table cell: Referenz auf Tabellenzelle
  • wk type table column: Referenz auf Tabellenspalte

Nur für Unterabschnitte:

  • wk first page: Erste Seite Unterabschnitt
  • wk right page: Rechte Seite Unterabschnitt
  • wk left page: Linke Seite Unterabschnitt

Hinweis: Ranges von Zellen, Spalten und Zeilen enthalten spezifische Attribute (siehe Abschnitt unten).

Zum Definieren von "Ranges" des Dokuments gibt es verschiedene Funktionen:

  • WP Text range gibt einen neuen Range mit den Parametern für Start und Ende zurück.
  • WP Selection range gibt einen neuen Range gemäß der aktuellen Benutzerauswahl zurück.
  • WP Picture range gibt einen neuen Range zurück, der nur die Bilder enthält.
  • WP Paragraph range gibt einen neuen Range zurück, der nur die Absätze enthält.
  • WP Table range gibt einen neuen Range zurück, der nur die Tabellen enthält.

Mit dem Befehl WP Get position erhalten Sie Angaben zu Position des Range in einem Dokument (Seitennummer, Spaltennummer...).

In 4D Write Pro lassen sich Tabellen per Programmierung über folgende Funktionen erstellen und einrichten:

(*) Spalten haben keine Entsprechung in HTML. In 4D Write Pro ist Range einer Spalte tatsächlich ein Zellenausschnitt.

Ranges von Zeilen, Spalten und Zellen werden jeweils über spezifische private Attribute definiert:

Konstante Wert Kommentar
wk cell count cellCount Gesamtanzahl der Zellen in der Reihe. Wertetyp: Lange Ganzzahl (Wert für wk type table row)
wk column count columnCount (verfügbar für Tabellen, Dokumente und Ranges) Anzahl der Spalten. Wert: Lange Ganzzahl
  • Für eine Tabelle: Attribut nur lesbar
  • Für Dokument oder Range: Attribut im Lese-/Schreibmodus. Standardwert=1 (einzelne Spalte). Maximumwert=20
wk first column firstColumn (Nur lesbares Attribut für Range) Nummer der ersten Spalte im Range. Wert: Lange Ganzzahl
wk first row firstRow (Nur lesbares Attribut für Range) Nummer der ersten Zeile im Range. Wert: Lange Ganzzahl
wk header row count headerRowCount

(Lesen/Schreiben) Anzahl der Zeilen der Tabelle, bei der das Attribut wk header auf True gesetzt ist. 

Der maximale Wert ist 5. Wenn Sie einen Wert über 5 übergeben, wird wk header nur für die ersten fünf Zeilen auf True gesetzt (siehe Wiederholte Kopfteile).

wk row count rowCount (Nur lesbares Attribut für Range) Gesamtanzahl der Zeilen im Range. Wert: Lange Ganzzahl
wk table table

(Nur-Lesen Attribut) Übergeordnete Tabelle. Wertetye: Objekt

wk table ID tableID

(Nur lesbares Attribut für Range) ID der übergeordneten Tabelle des Range. Wert: String

Wie im Absatz Kopfteile, Fußteile und Abschnitte verwalten beschrieben, können 4D Write Pro Dokumente folgendes enthalten:

  • Einen oder mehrere Abschnitte (standardmäßig ein Abschnitt)
  • Pro Abschnitt bis zu drei Unterabschnitte:
    • Unterabschnitt erste Seite
    • Unterabschnitt linke Seite(n)
    • Unterabschnitt rechte Seite(n)

Abschnitte und Unterabschnitte sind Objekte, die sich über folgende Befehle per Programmierung steuern lassen:

Mit folgenden Befehlen lassen sich den Abschnitten oder Unterabschnitten spezifische Kopf- und Fußteile zuweisen:

Die Objekte Abschnitt und Unterabschnitt unterstützen folgende Attribute:

4D Write Pro ermöglicht, dynamische Referenzen, genannt Lesezeichen, zu Ranges anzulegen und einzusetzen. Sie werden einem spezifischen Range in einem 4D Write Pro Dokument zugeordnet.

Lesezeichen sind dynamisch, d.h. wenn der Benutzer Text, der zum Lesezeichen gehört, verschiebt, erweitert und verkleinert, wird der zugeordnete Bereich automatisch aktualisiert und das Lesezeichen bezieht sich weiterhin auf denselben Range im Dokument. Hierzu ein Beispiel:

  • Sie erstellen ein Lesezeichen mit Namen "MyBM" zum Text "Hallo Welt" auf Seite 20 im Dokument.
  • Dann fügen Sie zu Beginn des Dokuments 50 Seiten hinzu
  • Über das Lesezeichen "MyBM" können Sie weiterhin automatisch auf den gleichen Text "Hallo Welt" zugreifen, jetzt auf Seite 70 des Dokuments

Ein Dokument kann eine unbegrenzte Zahl an Lesezeichen haben. Im gleichen Range sind mehrere Lesezeichen möglich und Lesezeichen Ranges können sich auch überlappen. Lesezeichen werden nicht mit dem Befehl WP INSERT DOCUMENT importiert (Lesezeichen im Zieldokument lassen sich nicht überschreiben).

Ein angelegtes Lesezeichen wird im Dokument gespeichert. Lesezeichen werden mit dem Dokument gesichert und lassen sich über verschiedene Befehle verwalten. Sie können auch als Referenzteile einer Vorlage dienen. Diese Teile werden dann automatisch mit Daten aus der Anwendung zusammengefügt, um dynamische Ausgabedokumente, wie z.B. Rechnungen oder Kataloge zu erstellen.

Es gibt verschiedene Befehle zum Verwalten von Lesezeichen:

Diese Befehle können die verschiedenen Attribute des Dokuments erhalten oder setzen:

Weitere Informationen dazu finden Sie im Abschnitt 4D Write Pro Attribute.

Diese Funktion meldet, ob ein bestimmter Stil für den Range unterstützt wird:

In 4D Write Pro können Sie jedem Zielobjekt Ihres Dokuments Hyperlinks zuweisen; das gilt für Ranges (Text, Bild, etc.), Elemente (Tabelle, Haupt-, Fußteil, etc.) oder das gesamte Dokument. Sie können z.B. ein URL Hyperlink in einen Bildbereich setzen; wird das 4D Write Pro Dokument dann in HTML exportiert, können Benutzer auf das Bild klicken, um eine Seite mit einer spezifischen Adresse zu öffnen.

Mit der Kombination Strg-Taste+Klick (Windows) oder Befehlstaste+Klick (macOS) können Sie Hyperlinks direkt in 4D Write Pro Dokumenten aktivieren. Bei einem nicht eingebbaren 4D Write Pro Dokument lässt sich der Link einfach per Klick aktivieren.

4D Write Pro unterstützt folgende Link Typen:

Link TypBeschreibung
urlLinks zu Web Seiten oder jedem Dokument, öffnet die zugeordnete Applikation, wenn aktiviert (*). Aktivieren eines URL Link zu einem 4D Write Pro Dokument (.4wp, .4w7) ersetzt das aktuelle Dokument im 4D Write Pro Bereich.
(*) wie der Befehl OPEN URL.
bookmarkLinks zu Lesezeichen im Dokument
methodAktivieren eines Link zu einer 4D Methode führt die Methode aus (wenn sie von der Methode SET ALLOWED METHODS registriert ist).

Hyperlinks werden über folgende Befehle verwaltet:

  • WP SET LINK zum Einfügen eines Link über ein Zielobjekt
  • WP Get links zum Erhalten der Collection aller Links in einem Zielobjekt

Hinweis: Hyperlinks werden wie Attribute behandelt, d.h. sie lassen sich über die Konstante wk link url der Befehle WP SET ATTRIBUTES und WP RESET ATTRIBUTES setzen oder erhalten. Wir empfehlen jedoch die Verwendung der Befehle WP SET LINK und WP Get links, da sie Hyperlinks automatisch als URLs codieren/decodieren. Werden Links über den Befehl WP GET ATTRIBUTES gelesen und enthält das Zielobjekt mehrere Links, gibt er den String des ersten Link zurück.

Wollen Sie z.B. den vom Benutzer ausgewählten Text in eine URL umwandeln:

schreiben Sie folgenden Code:

 $range:=WP Get selection(*;"WParea")
 WP SET ATTRIBUTES($range;wk link url;"http://doc.4d.com")

Um einen Link aus einem Range zu entfernen, schreiben Sie folgenden Code:

 WP RESET ATTRIBUTES($range;wk link url)

oder

 WP SET ATTRIBUTES($range;wk link url;"")

Hinweis: Enthält $range nicht den kompletten Link, wird er abgeschnitten und nicht vollständig entfernt.

Eine Stilvorlage ist ein Objekt mit verschiedenen Attributen, welche die Darstellung Ihrer 4D Write Pro Dokumente definieren. Diese Einstellungen lassen sich auf Absätze und Zeichen anwenden, wie z.B. Typ, Größe, Farbe bzw. Stärke der Schrift. Ist eine Vorlage definiert, wird sie als Objekt im 4D Write Pro Dokument gesichert und ist wiederverwendbar. So können Sie Ihren Dokumenten ein individuelles Aussehen geben und sparen Zeit und Arbeitsaufwand.

Standardstil

Alle 4D Write Pro Dokumente haben die standardmäßige Absatzstilvorlage "Normal". Neue Stilvorlagen (erstellt mit dem Befehl WP New style sheet) erben automatisch den Stil Normal. Ändern Sie Attribute einer Stilvorlage, gilt das nur für die Absätze, auf die sie angewandt werden, der Rest des Dokuments behält den Stil Normal bei. Wird eine Stilvorlage entfernt, wechseln die geänderten Attribute auf den Stil Normal zurück.

Der Stil Normal definiert für jedes Stilattribut in einem 4D Write Pro Dokument einen Standardwert, der über den Befehl WP Get style sheet abrufbar ist. Die Stilvorlage Normal lässt sich mit dem Befehl WP SET ATTRIBUTES verändern, aber nicht umbenennen. Mit dem Befehl WP New style sheet erstellte Stilvorlagen lassen sich wieder löschen, die Stilvorlage Normal lässt sich dagegen nicht löschen.

Attribute der Stilvorlagen für Absatz und Zeichen

Über Stilvorlagen können Sie die Attribute von ganzen Absätzen oder bestimmten Zeichen definieren:

  • Absatz - Der überwiegende Teil von veränderbaren Attributen gilt nur für Absätze. Das sind Einstellungen für Zeichenstil, sowie Vorgaben für Ränder, Rahmen, Tabulatoren, etc. 
  • Zeichen - Stilvorlagen für Zeichen verwenden nur entsprechende Attribute zur Gestaltung von Text (ein oder mehrere Zeichen) innerhalb des Absatzstils, wie z.B. Kopfteil, Titel, unterstrichener Text, etc. 

Beachten Sie, dass Absatzstile für ganze Absätze gelten. Soll ein Stil nur für einen Teil eines Absatzes gelten, müssen Sie einen Stil für Zeichen verwenden.

Vorrang der Stilvorlage

Im selben 4D Write Pro Dokument lassen sich mehrere Stilvorlagen für Absatz und Zeichen kombinieren. Dabei müssen Sie beachten, dass sich der Vorrang der Stilvorlage nach der Reihenfolge richtet, in der sie angewendet wird.

  • Wenden Sie eine Absatzstilvorlage und dann eine Zeichenstilvorlage an, hat die Zeichenstilvorlage Vorrang vor der Absatzstilvorlage. Sie können z.B. eine Absatzstilvorlage für den Hauptteil Ihres Dokuments setzen, dann eine Zeichenstilvorlage "bold" erstellen und auf bestimmte Wörter anwenden. Jetzt ist für die angegebenen Wörter die Zeichenstilvorlage vorrangig, für den restlichen Text gilt die Absatzstilvorlage. 
  • Wenden Sie eine Zeichenstilvorlage und dann eine Absatzstilvorlage an, gilt die Absatzstilvorlage für den gesamten Text und die Zeichenstile aus der Zeichenstilvorlage werden entfernt.  

Stilvorlagen anwenden

Stilvorlagen werden mit dem Befehl WP SET ATTRIBUTES und der Konstante wk style sheet bzw. wk new line style sheet angewendet (oder über Objektnotation). Weitere Informationen dazu finden Sie im Abschnitt 4D Write Pro Attribute.

Stilvorlagen wiederfinden

Über den Befehl WP Get style sheets können Sie alle Stilvorlagen in einem Dokument über ihren spezifischen Typ wiederfinden. Mit dem Befehl WP Get style sheet finden Sie eine bestimmte Stilvorlage über ihren Namen.

Stilvorlagen importieren und exportieren

Da Stilvorlagen als Objekte gespeichert werden, lassen sie sich leicht in andere 4D Write Pro Dokumente importieren oder beim Exportieren in mehreren Formaten beibehalten.

  • Import - Mit dem Befehl WP IMPORT STYLE SHEETS können Sie alle Objekte Stilvorlage eines bestimmten 4D Write Pro Dokuments erhalten und in einem neuen Dokument verwenden.
  • Export - Der Befehl WP EXPORT DOCUMENT oder WP EXPORT VARIABLE exportiert Ihre Dokumente zusammen mit den dazugehörigen Stilvorlagen. 

Attribute von Stilvorlagen

Die folgenden Attribute von Absatz- und Zeichenstilvorlagen lassen sich mit den Befehlen WP SET ATTRIBUTES und WP RESET ATTRIBUTES verändern oder über den Befehl WP GET ATTRIBUTES finden.

Hinweis: Einige Attribute sind miteinander verknüpft. Fügen Sie nur eins der Attribute hinzu, werden die anderen verknüpften Attribute mit den Standardwerten gesetzt. Das kann u.U. ein anderer Wert sein als für die Stilvorlage Normal definiert wurde. Definieren Sie z.B. nur den linken Rand rot, sind die anderen Ränder schwarz (Standardwert), selbst wenn die Ränder in der Stilvorlage Normal zuvor mit Purpur definiert wurden.

 

AttributeAbsatzZeichenVerknüpft mit
wk avoid widows and orphansX  
wk background clipX  
wk background colorX X 
wk background heightX wk background width
wk background imageX  
wk background image urlX  
wk background originX  
wk background position horizontalX wk background position vertical 
wk background position verticalX wk background position horizontal 
wk background repeatX  
wk background widthX wk background height 
wk border colorX wk border color bottom, wk border color left, wk border color right, wk border color top
wk border color bottomX wk border color, wk border color left, wk border color right, wk border color top
wk border color leftX wk border color, wk border color bottom, wk border color right, wk border color top
wk border color rightX wk border color, wk border color bottom, wk border color left, wk border color top
wk border color topX wk border color, wk border color bottom, wk border color left, wk border color right
wk border radiusX  
wk border styleX wk border style bottom, wk border style left, wk border style right, wk border style top 
wk border style bottomX wk border style, wk border style left, wk border style right, wk border style top 
wk border style leftX wk border style, wk border style bottom, wk border style right, wk border style top 
wk border style rightX wk border style, wk border style bottom, wk border style left, wk border style top
wk border style topX wk border style, wk border style, wk border style bottom, wk border style left
wk border widthX wk border width bottom, wk border width left, wk border width right, wk border width top 
wk border width bottomX wk border width, wk border width left, wk border width right, wk border width top
wk border width leftX wk border width, wk border width bottom, wk border width right, wk border width top
wk border width rightX wk border widthwk border width bottom, wk border width left, wk border width top
wk border width topX wk border widthwk border width bottom, wk border width left, wk border width right
wk directionX  
wk fontXX wk font bold, wk font italic, wk font size
wk font boldXX wk font, wk font family, wk font italic, wk font size
wk font familyXX wk font, wk font bold, wk font italic, wk font size
wk font italicXX wk font, wk font bold, wk font family, wk font size
wk font sizeXX wk font, wk font bold, wk font family, wk font italic
wk line heightX  
wk list fontX  
wk list string format LTRX  
wk list string format RTLX  
wk list style imageX  
wk list style image heightX  
wk list style image urlX  
wk list style typeX  
wk marginX wk margin bottom, wk margin left, wk margin right, wk margin top
wk margin bottomX wk margin, wk margin left, wk margin right, wk margin top
wk margin leftX wk margin, wk margin bottom, wk margin right, wk margin top
wk margin rightX wk margin, wk margin bottom, wk margin left, wk margin top
wk margin topX wk margin, wk margin bottom, wk margin left, wk margin right
wk min heightX  
wk min widthX  
wk nameXX  
wk new line style sheetX  
wk owner 
wk paddingX wk padding bottom, wk padding left, wk padding right, wk padding top
wk padding bottomX wk padding, wk padding left, wk padding right, wk padding top
wk padding boxX  
wk padding leftX wk padding, wk padding bottom, wk padding right, wk padding top
wk padding rightX wk padding, wk padding bottom, wk padding left, wk padding top
wk padding topX wk padding, wk padding bottom, wk padding left, wk padding right
_o_wk page break insideX  
wk tab defaultX wk tabs, wk tab stop offsets, wk tab stop types, wk tab stop leadings
wk tabsX wk tab default, wk tab stop offsets, wk tab stop types, wk tab stop leadings
wk tab stop offsetsX  wk tabs, wk tab default, wk tab stop types, wk tab stop leadings
wk tab stop typesX wk tabs, wk tab default, wk tab stop offsets, wk tab stop leadings
wk tab stop leadingsX wk tabs, wk tab default, wk tab stop offsets, wk tab stop types  
wk text alignX  
wk text colorXX 
wk text indentX  
wk text linethrough colorXX 
wk text linethrough styleXX wk text underline style
wk text shadow colorXX wk text shadow offset
wk text shadow offsetX X wk text shadow color
wk text transformXX 
wk text underline colorXX 
wk text underline styleXX wk text linethrough style
wk typeX (read only)X (read only) 
wk vertical alignXX 
wk widthX  



Siehe auch 

Download HDI database

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: 4D Write Pro Programmiersprache

 
SEITENINHALT 
 
GESCHICHTE 

Geändert: 4D v16
Geändert: 4D v16 R4
Geändert: 4D v16 R5

 
ARTIKELVERWENDUNG

4D Write Pro Handbuch ( 4D v20 R7)