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

Home

 
4D v20 R7
Formeln verwalten

Formeln verwalten  


 

4D Write Pro Dokumente können Referenzen auf 4D Formeln enthalten, wie Variablen, Felder, Ausdrücke, Projektmethoden oder 4D Befehle. Auch auf spezifische Angaben, wie Seitennummer. sind Referenzen über Formeln möglich (siehe Absatz unten Ausdrücke für Dokument oder Seite einfügen).

Formeln werden mit dem Befehl WP INSERT FORMULA in 4D Write Pro Bereiche eingefügt. Über den Befehl WP Get formulas lassen sie sich lesen. Sie werden auch über den Befehl WP Get text zurückgegeben. 

Formeln werden in folgenden Fällen berechnet:

  • beim Einfügen in ein Formularobjekt, das berechnete Werte anzeigt
  • beim Laden eines Objekts 4D Write Pro in ein Formularobjekt, das berechnete Werte anzeigt
  • beim Aufrufen des Befehls WP COMPUTE FORMULAS
  • beim Einfrieren über den Befehl WP FREEZE FORMULAS (falls noch nicht berechnet)
  • vor dem Drucken (falls noch nicht berechnet)
  • vor dem Exportieren in .docx (falls sich die Formel nicht mit MS Word Formeln abbilden lässt)
  • beim Aufrufen von Standardaktionen zum Einfrieren, Drucken, Exportieren oder Berechnen von Formeln. Siehe unter Standardaktionen

Formeln werden nicht beim Laden eines Dokuments berechnet (über WP New, WP INSERT DOCUMENT oder wpArea:=[table]field):

  • wenn das Dokument nur offscreen ist
  • wenn das Dokument onscreen angezeigt wird, das Formularobjekt jedoch nur Referenzen anzeigt.

Mit dem Befehl WP FREEZE FORMULAS werden Formeln zu statischen Werten - außer für Seitennummer und Seitenanzahl (siehe unten).

Hinweis zur Kompatibilität: Die Verwaltung von Ausdrücken über die Befehle ST INSERT EXPRESSIONST Get expression, ST COMPUTE EXPRESSIONS und ST FREEZE EXPRESSIONS ist überholt, wird aber zur Wahrung der Kompatibilität in 4D Write Pro noch unterstützt.

Die Auswahl in einem 4D Write Pro Bereich mit dem Inhalt einer Variablen ersetzen:

 C_TEXT(fullName)
 C_OBJECT($sel)
 fullName:="John Smith"
 $sel:=WP Selection range(4DWPArea)
 Case of
    :(Form event code=On Clicked)
       WP INSERT FORMULA($sel;Formula(fullName);wk replace)
 End case

Über den Befehl WP INSERT FORMULA können Sie spezielle Ausdrücke für Dokument- oder Seitenattribute in den verschiedenen Bereichen Haupt-, Kopf-, Fußteil einfügen.

Syntax der Formel Typ Beschreibung
This.title Text Im Attribut wk title definierter Titel 
This.author  Text Im Attribut wk author definierter Autor
This.subject  Text Im Attribut wk subject definierter Betreff
This.company Text  Im Attribut wk company definierte Firma
This.notes Text  Im Attribut wk notes definierte Notizen
This.dateCreation Datum Im Attribut wk date creation definiertes Erstellungsdatum
This.dateModified Datum Im Attribut wk date modified definiertes Änderungsdatum
This.pageNumber (*) Lange Ganzzahl Seitennummer wie definiert: 
  • ab Beginn des Dokuments (Standard) oder
  • ab der Seite des Abschnitts, wenn Seitenstart per Abschnitt definiert ist 

Diese Formel ist immer dynamisch, sie wird nicht durch den Befehl WP FREEZE FORMULAS beeinflusst.  

This.pageCount (*) Lange Ganzzahl Seitenanzahl: Gesamtanzahl der Seiten

Diese Formel ist immer dynamisch, sie wird nicht durch den Befehl WP FREEZE FORMULAS beeinflusst.
This.document Object 4D Write Pro Dokument

(*) Wichtig: This.pageNumber und This.pageCount dürfen nur direkt in einer 4D Write Pro Formel verwendet werden (sie müssen im String formula.source vorhanden sein). Bei Verwenden in der 4D Programmiersprache in einer Methode, die von der Formel aufgerufen wird, geben sie keine korrekten Werte zurück. Sie lassen sich jedoch als Parameter an eine Methode übergeben, die von der Formel direkt aufgerufen wird:

  • Das funktioniert: « formatNumber(This.pageNumber) »
  • Das funktioniert NICHT: « formatNumber » mit der Methode formatNumber, die This.pageNumber bearbeitet.

Beispiel: Seitennummer im Fußteil einfügen:

 $footer:=WP Get footer(4DWP;1)
 WP INSERT FORMULA($footer;Formula(This.pageNumber);wk append)
  // Formula(myMethod) mit myMethod, die This.pageNumber bearbeitet
  //würde nicht korrekt funktionieren

Hinweis zur Kompatibilität: Im Dokument vorhandene $wp_ Variablen aus Versionen vor 4D v18 R2 werden noch unterstützt und bewertet. 

Datum
Werden der Befehl Current date, eine Variable vom Typ Datum oder eine Methode, die ein Datum zurückgibt, in eine Formel eingefügt, werden sie automatisch mit dem Format system date short in Text umgewandelt.

Zeit
Werden der Befehl Current time, eine Variable vom Typ Zeit oder eine Methode, die eine Zeit zurückgibt, in eine Formel eingefügt, müssen sie mit dem Befehl String eingebunden werden, da der Typ Zeit in JSON nicht unterstützt wird. Hier Beispiele zur Erläuterung:

  // Dieser Code ist am besten
 $formula1:=Formula(String(Current time)) //OK 
 
  // Dieser Code funktioniert, wird aber nicht empfohlen, außer nach "Edit formula"
 $formula2:=Formula from string("String(Current time)") //OK
 
  // Dieser Code ist falsch, da Zeitwerte als Lange Ganzzahl für Sekunden bzw. Millisekunden angezeigt werden und nicht als Zeit
 $formula3:=Formula from string("Current time") //NOT valid
 $formula4:=Formula(Current time//NOT valid

In 4D Write Pro Dokumente eingefügte Ausdrücke vom Typ Tabelle oder Feld unterstützen die virtuelle Strukturdefinition der Anwendung. Die virtuelle Struktur in Formeln wird über die Befehle SET FIELD TITLES(...;*) und SET TABLE TITLES(...;*) definiert. 

Bei einer virtuellen Struktur gilt folgendes: 

  • Referenzen auf Ausdrücke mit Feldern zeigen virtuelle Namen an, wenn das 4D Write Pro Dokument nicht Werte, sondern Referenzen zeigt. 
  • WP Get text gibt Name der virtuellen Struktur zurück, wenn die Option wk expressions as source im Parameter expressions gesetzt ist.
  • WP INSERT FORMULA ignoriert die virtuelle Struktur. Erwartet immer Name der realen Tabelle bzw. des Feldes

Hinweis: Wird ein Dokument im Modus "Zeige Ausdruck" angezeigt, werden Referenzen auf Tabellen oder Felder, die nicht zur virtuellen Struktur gehören, mit Fragezeichen angezeigt:
zum Beispiel [VirtualTableName]? wenn das Feld nicht in der virtuellen Struktur definiert ist.

Sie können steuern, wie Formeln in Ihren Dokumenten angezeigt werden:

  • als Werte oder als Referenzen
  • Wenn sie als Referenzen angezeigt werden, zeigen Sie den Quelltext, das Symbol oder den Namen an.

Standardmäßig werden 4D Formeln als Werte angezeigt. Wenn Sie eine 4D Formel einfügen, berechnet 4D Write Pro den aktuellen Wert und zeigt ihn an. Wenn Sie wissen möchten, welches Formular verwendet wird oder wie es heißt, müssen Sie es als Referenz anzeigen.

Um Formeln als Referenzen anzuzeigen, können Sie:

Formularreferenzen können angezeigt werden als:

  • Quelltexte (Standard)
  • Symbole
  • Namen

Wenn Formeln als Referenzen angezeigt werden, erscheint der Quelltext der Formel standardmäßig in Ihrem Dokument mit einem grauen Hintergrund (kann mit dem Selector wk formula highlight angepasst werden). 

Wenn Sie zum Beispiel das aktuelle Datum zusammen mit einem Format eingefügt haben, wird das Datum angezeigt: 

 Wenn Sie Formeln als Referenzen anzeigen, wird die Quelle der Formel angezeigt:  

 

Wenn Quelltexte von Formeln in einem Dokument angezeigt werden, kann das Design verwirrend sein, wenn Sie mit anspruchsvollen Templates arbeiten, die z.B. Tabellen verwenden, und wenn die Formeln komplex sind:

In diesem Fall können Sie Formelverweise als Symbole anzeigen, so dass das Dokument kompakter ist:

Um Formelreferenzen als Symbole anzuzeigen, können Sie:

Sie können Formeln Namen zuweisen, damit 4D Write Pro Template-Dokumente für Endanwender leichter zu lesen und zu verstehen sind. Wenn Formeln als Referenzen (und nicht als Symbole) angezeigt werden und Sie einen Namen für eine Formel definiert haben, wird der Name der Formel angezeigt. 

Die folgenden Formelreferenzen werden zum Beispiel standardmäßig als Quelltext angezeigt:

Wenn Sie Formelnamen zuweisen, werden diese anstelle von Texten angezeigt:

Um einer Formel einen Namen zuzuweisen, müssen Sie den Befehl WP INSERT FORMULA mit einem Objektparameter verwenden. Zum Beispiel:

  //fügt den vorherigen Tag in das Dokument ein
 $o:=Neues Objekt("formula";Formula(Aktuelles Datum-1);"name";"Gestern")
 $range:=WP Text range(WPArea;wk start text;wk end text)
 WP INSERT FORMULA($range;$o;wk append)

Hinweis: Nur Inline-Formeln können einen Namen haben (Formeln für verankerte Bilder, Umbrüche und Datasource-Formeln für Tabellen können keine Namen haben).

Unabhängig vom Anzeigemodus der Formeln erhalten Sie zusätzliche Informationen zu den Formeln über Tipps, die angezeigt werden, wenn Sie den Mauszeiger über die Formeln bewegen.

  • Wenn die Formeln keine Namen haben, liefern die Tipps den Quelltext der Formeln:
  • Wenn Formeln zwar Namen haben, aber als Werte oder Symbole angezeigt werden, gibt der Tipp den Namen der Formeln an:

    In diesem Zusammenhang können Sie den Quelltext der Formel anzeigen, indem Sie Strg (Windows) oder Cmd (macOS) drücken, während Sie den Mauszeiger über die Formel halten.
  • Wenn Formeln Namen haben und als Namen angezeigt werden, wird standardmäßig kein Tipp angezeigt.
    Sie können den Quelltext der Formel anzeigen, indem Sie Strg (Windows) oder Cmd (macOS) drücken, während Sie den Mauszeiger über die Formel halten:



Siehe auch 

Befehle aus dem Kapitel Mehrfachstil Text verwenden
Download HDI database

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Formeln verwalten

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v16
Geändert: 4D v17 R4
Geändert: 4D v18 R2
Umbenannt: 4D v18 R2
Geändert: 4D v20 R2
Geändert: 4D v20 R3

 
ARTIKELVERWENDUNG

4D Write Pro Handbuch ( 4D v20 R7)