4D Write Pro Befehle erneut optimiert!

Automatisch übersetzt von Deepl

Bei der Veröffentlichung jeder neuen Version berücksichtigen wir das Feedback unserer Kunden zur allgemeinen Verwendung von 4D Write Pro und seinen Befehlen. Einige Befehle und Sprachfunktionen bleiben zwar zu 100 % kompatibel, werden aber weiterentwickelt!

Einige Befehle, deren Syntax in 4D 20 R8 verbessert wurde, erlauben nun die Verwendung moderner Parameter wie Objekte oder Sammlungen. Andere sind jetzt Funktionen, was ihre Verwendung erleichtert. Und schließlich wurde eine Reihe neuer Funktionen geschaffen. All dies macht Ihren Code einfacher, generischer und leichter zu pflegen!

WP GET/SET ATTRIBUTE: Alle Attribute in einem einzigen Objekt!

Einer der beliebtesten Befehle ist WP SET ATTRIBUTES, da er für alle Arten von Zielen verwendet werden kann, von einem einzelnen Zeichen bis hin zum gesamten Dokument. Dieser Befehl kann jetzt ein Objekt als Parameter erhalten, anstatt Attribut-Wert-Paare.

Code-Beispiel

$attributes:={color: "red"; fontBold: 0; fontItalic: 1; fontSize: "16pt"}

WP SET ATTRIBUTES($range1; $attributes)
WP SET ATTRIBUTES($range2; $attributes)
WP SET ATTRIBUTES($range3; $attributes)

Auf dieselbe Weise ist es möglich, in einem Objekt alle oder einen Teil der Attribute eines beliebigen Bereichs oder Elements zu erhalten. Dies ist sehr nützlich, wenn Sie die gleichen Attribute auf ein anderes Ziel anwenden wollen… Wenn Sie nur einen Parameter übergeben, wird das zurückgegebene Objekt alle Attribute enthalten, aber Sie können dies durch die Verwendung einer Sammlung einschränken!

$attributes:=WP Get attributes($range; ["color"; "fontItalic"])

Schließlich akzeptiert der Befehl WP RESET ATTRIBUTES nun eine Sammlung anstelle von mehreren Parametern (natürlich ist die vorherige Syntax weiterhin gültig)

$attributes:=["color"; "fontBold"; "fontItalic"; "fontSize"]

WP RESET ATTRIBUTES($range1; $attributes)
WP RESET ATTRIBUTES($range2; $attributes)
WP RESET ATTRIBUTES($range3; $attributes)

WP TABLE APPEND ROW: Formeln, Sammlungen und Funktionsrückgaben!

Die Parameter dieses Befehls können nun vom Typ Formel oder eine benannte Formel sein (zur Erinnerung: eine benannte Formel ist ein Objekt, das sowohl die Formel als auch den Formelnamen enthält… siehe diesen BLOG).

Dann können die Parameter als Sammlung an den Befehl übergeben werden und das Beste ist, dass der Befehl jetzt ein Zeilenelement zurückgibt!

$row:=WP Table append row($table; "Reference"; "Date"; "Time"; "rnd 1"; "rdn 2")
WP SET ATTRIBUTES($row; wk background color; "lightgrey")

$colItems:=[]
$colItems.push("KX-825")
$colItems.push(Formula(Current date))
$colItems.push(Formula(String(Current time; HH MM SS)))
$colItems.push(Formula(Random))
$colItems.push({name: "RND NUMBER"; formula: Formula(Random)})

$row:=WP Table append row($table; $colItems)

WP BILD EINFÜGEN

Wenn man ein Element in ein Dokument einfügt, ist es im Allgemeinen nützlich, sofortigen Zugriff auf dieses Element zu haben. Der Befehl WP INSERT PICTURE wird daher zu einer Funktion WP Insert picture und gibt ein Bildelement zurück. So kann es beispielsweise sinnvoll sein, ein Bild sofort nach dem Einfügen in einen Rahmen zu setzen. Außerdem kann dieser Befehl jetzt eine 4D.File als Argument akzeptieren!

$pictureFile:=File(Folder(fk resources folder).path+"bullet.png"; fk posix path)
$picture:=WP Insert picture(WParea; $pictureFile; wk append)

$attributes:={}
$attributes[wk margin]:="8pt"
$attributes[wk padding]:="5pt"
$attributes[wk border width]:="2pt"
$attributes[wk border style]:=wk solid
$attributes[wk border color]:="navy"
WP SET ATTRIBUTES($picture; $attributes)

DOKUMENTE und BILDER

Die Befehle WP IMPORT DOCUMENT, WP EXPORT DOCUMENT, WP INSERT PICTURE und WP Add picture wurden ebenfalls modernisiert und akzeptieren nun zusätzlich zu den üblichen Argumenten auch 4D.File.

$documentFile:=File("/RESOURCES/reference.4wp")
WParea:=WP Import document($documentFile)
$documentFile:=File("/DATA/CopyOfReference.4wp")
WP EXPORT DOCUMENT(WParea; $documentFile)
$pictureFile:=File("/RESOURCES/bullet.png")
$picture3:=WP Insert picture(WParea; $pictureFile; wk append)
$pictureFile:=File("/RESOURCES/bullet.png")
$picture:=WP Add picture(WParea; $pictureFile)

„DOKUMENTENTEXT EINFÜGEN“ STATT „DOKUMENT EINFÜGEN“

Zur besseren Übersichtlichkeit wurde der Befehl WP INSERT DOCUMENT in WP Insert document body umbenannt, da er genau das tut.

Wenn er aufgerufen wird, wird der Textkörper des Dokuments eingefügt. Kopf- und Fußzeilen, verankerte Bilder und Textfelder werden ignoriert. Einzige Ausnahme: Stilvorlagen werden ebenfalls importiert!

Wie Sie im folgenden Beispiel sehen können, gibt dieser Befehl nun einen Bereich zurück, der dem importierten Textkörper entspricht!

$file:=File("/RESOURCES/Main.4wp")
$main:=WP Import document($file)

$pictureFile:=File("/RESOURCES/bullet.png")
$sub:=WP Import document($pictureFile)

$range:=WP Insert document body($main; $sub; wk append)

MEHR INFORMATIONEN ÜBER BEREICHE

Einige Befehle waren stumm und gaben… nichts zurück, obwohl ein Bereich oft recht nützlich gewesen wäre. Die folgenden Befehle tun genau das, und alle geben Textbereiche zurück!

  • WP INSERT FORMULA
  • WP INSERT BREAK
  • WP INSERT DOCUMENT BODY (früher WP INSERT DOCUMENT)
$range:=WP Insert formula(WParea; Formula(Current date); wk append)
WP SET ATTRIBUTES($range; {color: "red"; fontItalic: 1; fontBold: 0})

WILLKOMMENE NEUE FUNKTIONEN

Abschnitte

Abschnitte haben sowohl Namen als auch Indizes (das sind Attribute), aber der Zugriff auf diese Informationen war nicht einfach.

Mit den neuen Funktionen This.sectionIndex und This.sectionName, die Sie als Formeln direkt in Ihre Dokumente einfügen können, ist das jetzt ein Kinderspiel!

Seitenverzeichnisse

Bei Bedarf können Sie jetzt mit der Funktion This.pageIndex auf den Seitenindex zugreifen.

Hier eine kurze Erklärung: Im Gegensatz zur Funktion This.pageNumber, deren Wert variieren kann (sie kann pro Abschnitt gesetzt oder zurückgesetzt werden), beginnt der Seitenindex immer bei 1 und hängt ausschließlich von der Seitennummerierung ab.

Ein Dokument kann z. B. drei Abschnitte enthalten, deren Seitenzahlen systematisch bei 1 beginnen: Der Vorspannteil läuft von 1 bis 30, der Hauptteil von 1 bis 200 und der Anhangteil von 1 bis 8. In diesem Fall läuft der Seitenindex von 1 bis 238.

Schlussfolgerung

Es besteht kein Zweifel, dass die vereinfachten Befehle den Entwicklern von 4D Write Pro das Leben leichter machen und die Überprüfung und Pflege des Codes vereinfachen. Wir freuen uns auf Ihr Feedback im Forum!

Roland Lannuzel
- Product Owner & 4D Experte - Nach seinem Studium der Elektronik arbeitete Roland als Entwickler und Berater in der industriellen IT-Branche, wo er Lösungen für Kunden mit einer Vielzahl von Datenbanken und Technologien entwickelte. In den späten 80er Jahren verliebte er sich in 4D und setzte es bei der Entwicklung von Geschäftsanwendungen wie Buchhaltungs-, Abrechnungs- und E-Mail-Systemen ein. 1997 trat er schließlich in das Unternehmen ein und leistete einen wertvollen Beitrag, indem er Spezifikationen, Testtools und Demos entwarf, Schulungen durchführte und auf vielen Konferenzen für die 4D Community sprach. Er gestaltet die Zukunft von 4D aktiv mit, indem er neue Funktionen und Datenbankentwicklungstools definiert.