Dynamische Formulare sind Formulare, deren Strukturen entweder in einer .json Datei oder in einem 4D Objekt definiert sind. Sie werden bei jedem Aufruf neu generiert und bieten so mehr Flexibilität. Einige bedeutsame Vorteile sind:
Usability (Nutzbarkeit, Benutzerfreundlichkeit)
unmittelbare Updates
dynamische Änderungen durch Benutzer
leichte Wiederverwendung
schnelleres Suchen
Portability (Übertragbarkeit, Mobilität)
einfache gemeinsame Nutzung
lässt sich in Source Control Systemen speichern
Jedes Objekt in einem dynamischen Formular, inkl. das Formular selbst, hat eine oder mehrere Eigenschaften. Weitere Informationen dazu finden Sie unter Seitenverzeichnis.
Beim Erstellen von Formularen aus Dateien gilt folgendes:
Sie müssen mit dem JSON Schema konform sein. Das 4D JSON Schema für Formulare finden Sie im 4D Programm Ordner unter /Resources/formsSchema.json. Sie müssen selbst darauf achten, dass das Formular mit dem .json Format konform ist. Weitere Informationen dazu finden Sie unter dem Befehl JSON Validate.
Sie müssen in einer Datei mit der Endung ".json" sein.
Sie müssen innerhalb des Package der Anwendung gespeichert werden, zu der die Strukturdatei gehört.
Hinweise:
Kommentare in .json Dateien müssen in der Eigenschaft "comments" enthalten sein. Standardmäßige Zeichen zum Kennzeichnen von Kommentaren, wie "//", "/*", "'", etc., machen die Datei ungültig.
Alle Dateipfade können relativ oder absolut sein. Als Pfadtrenner dient das Zeichen '/', das wie folgt aufgelöst wird:
Ein relativer Pfad darf nicht mit '/' beginnen. Er wird relativ zum JSON Dokument aufgelöst, wo der Pfadstring gefunden wird,
Ein absoluter Pfad startet mit '/'. Aus Sicherheitsgründen wird nur "/RESOURCES" als absoluter Pfad akzeptiert und dieser bezeichnet den Ordner Resources der aktuellen Anwendung. Beispiel: "/RESOURCES/templates/myfile.json" zeigt auf die Datei "myfile.json" im Ordner Resources der aktuellen Anwendung.
Hinweise:
Beim Auflösen des Namens wird die Groß- und Kleinschreibung berücksichtigt.
4D löst keinen Pfad zu einer .json Datei auf, die über das Netzwerk verfügbar ist (startet mit "http/https").
Ist ein Pfad inkorrekt oder die Datei nicht konform zum JSON Schema, wird ein Fehler erzeugt.
Dynamische Formulare können JSON Zeiger enthalten. Sie werden automatisch aufgelöst, wenn Sie einen der 4D Befehle aufrufen, die im Parameter ein dynamisches Formular erlauben (.json Dateipfad oder 4D Objekt):
Pfad(e) der CSS Datei als String, Collection von Strings oder Collection von Objekten mit den Eigenschaften "path" und "media"
Formular
entryOrder
Collection
Collection der Namen von Formularobjekten, welche die Eingabefolge definieren. Das ist die Reihenfolge, in der Formularobjekte nacheinander hervorgehoben werden, wenn der Benutzer die Tabulatortaste bzw. Strg/Befehl + Tab drückt. Ist diese Eigenschaft nicht definiert, wird die standardmäßige Eingabefolge (basierend auf der definierten Objektreihenfolge für die Seite) verwendet.
Marker geben genaue Stellen auf dem vertikalen Lineal des Formulars an und werden hauptsächlich in Ausgabeformularen verwendet. Sie steuern die gelistete Information und setzen Kopfteil, Umbruch, Hauptteil und Fußteil eines Formulars.
Eigenschaft
Typ
Beschreibung
Mögliche Werte
Unterstützte Objekte
markerBody
Ganzzahl
Bereich zwischen den Steuerlinien Kopfteil 1 und Umbruch des Formulars
Minimum: 0
Formular
markerBreak
Ganzzahl/Array Ganzzahl
Bezeichnet Bereiche zum Anzeigen von Informationen, die nicht zu den Datensätzen gehören, oder Linien bzw. grafische Elemente, die die Anzeige auf dem Bildschirm abschließen.
Minimum: 0
Formular
markerFooter
Ganzzahl
Bereich zwischen den Steuerlinien Umbruch 1 und Fußteil des Formulars
Minimum: 0
Formular
markerHeader
Ganzzahl/Array Ganzzahl
Bereich über der Steuerlinie Kopfteil 1 des Formulars.
Um ein Ereignis aufzurufen, geben Sie den Namen oder Wert des Ereignisses in die Eigenschaft "events" ein: in camelCase, in eckigen Klammern, zwischen Anführungszeichen und mit dem ersten Buchstaben kleingeschrieben (Beispiel, "events": ["onLoad"] oder [1]).
Eigenschaft
Typ
Beschreibung
Mögliche Werte
Unterstützte Objekte
events
Array vom Typ String oder Zahl
Die möglichen Ereignisse, um eine Aktion auszulösen.
Bei einem Splitterobjekt mit Splittermodus werden andere Objekte rechts davon (vertikaler Splitter) oder darunter (horizontaler Splitter) gleichzeitig mit dem Splitter ohne Stop bewegt
Fügt einen Wert automatisch in einer abgespeicherten Liste hinzu, wenn der Benutzer einen Wert eingibt, der in der dem Objekt zugeordneten Auswahlliste nicht vorhanden ist
TRUE / FALSE
Combo Box, Spalte der Listbox
choiceList
Liste
Weist einer Spalte in der Listbox eine Auswahlliste zu
variabel
Eingabe, Dropdown Menü, Combo Box, Spalte der Listbox
dataSource
String oder String Array für Spalte in hierarchischer Listbox
Eine 4D Variable, Feldname oder beliebiger komplexer Programmierspracheausdruck
Hinweis auf Typ einer automatisch zugewiesenen Variable, wenn Datenquelle nicht angegeben ist oder auf Auswahl der entsprechenden Eigenschaft des Anzeigeformats (textFormat, numberFormat, timeFormat, dateFormat, pictureFormat, booleanFormat).
Weist dem Objekt oder Zellen einer Listbox einen Eingabefilter zu. Diese Eigenschaft ist nur verfügbar, wenn die Eigenschaft "Enterable" aktiviert ist.
variabel
Eingabe, Combo Box, Liste, Spalte der Listbox
focusable
Boolean
Erlaubt, dass das Objekt den Fokus hat (und über die Tastatur aktivierbar ist).
Erlaubt eine Liste mit ausgenommenen Werten in der Spalte. Die Eingabe eines ausgenommenen Werts wird nicht akzeptiert und es erscheint eine Fehlermeldung
variabel
Eingabe, Combo Box, Spalte der Listbox
max
String / Zahl
Erlaubter Maximumwert. Das sind bei numerischen Steppern Sekunden, wenn dem Objekt ein Wert vom Typ Zeit zugewiesen ist, und wird ignoriert, wenn dem Objekt ein Wert vom Typ Datum zugewiesen ist.
Erlaubter Minimumwert. Das sind bei numerischen Steppern Sekunden, wenn dem Objekt ein Wert vom Typ Zeit zugewiesen ist, und wird ignoriert, wenn dem Objekt ein Wert vom Typ Datum zugewiesen ist.
Ähnlich zur Standardschalfläche, jedoch mit geänderter Darstellung, um dem Benutzer anzuzeigen, welches die empfohlene Wahl ist
TRUE / FALSE
Schaltfläche
dpi
String
Setzt die Bildschirmauflösung für den Inhalt im 4D Write Pro Bereich
0, 72, 96
Write Pro
hideFocusRing
Boolean
Während der Ausführung wird ein Feld bzw. jedes eingebbare Objekt mit Fokus durch ein Auswahlrechteck hervorgehoben. Mit dieser Eigenschaft können Sie dieses Rechteck ausblenden.
TRUE / FALSE
Eingabe, Write Pro, Unterformular, Liste, Listbox
hideSystemHighlight
Boolean
Gilt nur für Listboxen vom Typ Auswahl und dient dazu, hervorgehobene Datensätze in der Listbox auszublenden.
TRUE / FALSE
Listbox
labelsPlacement
String
Gibt die Position der Beschriftung für ein Objekt an
"none", "top", "bottom", "left", "right"
Registerkarte, Ablaufanzeige, Lineal
layoutMode
String
Setzt die Art der Anzeige für das 4D Write Pro Dokument im Formularbereich.
"embedded, "draft", "page"
Write Pro
scrollbarHorizontal
String
Erlaubt dem Benutzer, den Ansichtbereich nach links oder rechts zu ziehen.
"visible", "hidden", "automatic"
Eingabe, Write Pro, Unterformular, Liste, Listbox
scrollbarVertical
String
Erlaubt dem Benutzer, den Ansichtbereich nach oben oder unten zu ziehen.
"visible", "hidden", "automatic"
Eingabe, Write Pro, Unterformular, Liste, Listbox
showBackground
Boolean
Blendet Hintergrundbilder und Hintergrundfarbe ein/aus (standardmäßig angezeigt).
TRUE / FALSE
Write Pro
showHeaders
Boolean
Aktiviert/deaktiviert die Sichtbarkeit von Kopfteilen in Dokument oder Listbox
Blendet das horizontale Lineal ein/aus (standardmäßig angezeigt).
TRUE / FALSE
Write Pro
showVerticalRuler
boolean
Blendet das verikale Lineal ein/aus (standardmäßig angezeigt).
TRUE / FALSE
Write Pro
showHTMLWysiwyg
Boolean
Aktiviert/deaktiviert die HTML WYSIWYG Anzeige, in der alle erweiterten 4D Write Pro Attribute entfernt werden, die nicht konform mit allen Browsern sind (standardmäßig deaktiviert).
TRUE / FALSE
Write Pro
showFooters
Boolean
Aktiviert/deaktiviert die Sichtbarkeit von Fußteilen in Dokument oder Listbox
TRUE / FALSE
Write Pro, Listbox
showPageFrames
Boolean
Blendet den Seitenrahmen ein/aus, wenn der Ansichtsmodus auf "Page" gesetzt ist (standardmäßig ausgeblendet)
TRUE / FALSE
Write Pro
showReferences
Boolean
Zeigt alle eingefügten 4D Ausdrücke im Dokument als Referenzen.
TRUE / FALSE
Write Pro
userInterface
string
Blendet 4D View Pro Benutzeroberfläche ein/aus.
"ribbon", "toolbar", "none" (Standardwert)
View Pro
withFormulaBar
boolean
Blendet 4D View Pro Formelleiste ein/aus. Nur bei Verwendung der Oberfläche Toolbar.
TRUE / FALSE (Standardwert)
View Pro
zoom
String
Setzt Zoom in Prozent zum Anzeigen von Inhalt im 4D Write Pro Bereich. Standard ist 100%.
Erlaubt Änderung durch Benutzer von Schrift oder Farbe eines Objekts für die aktuelle Sitzung
TRUE / FALSE
Eingabe, Listbox
customBackgroundPicture
Bild
Setzt Hintergrundbild für die Schaltfläche
absoluter oder relativer Pfad über Sandbox-Prozess. Muss zusammen mit der Eigenschaft style mit der Option "custom" verwendet werden.
Schaltfläche, Kontrollkästchen, Optionsfeld
customBorderX
Ganzzahl
Setzt die Größe (in Pixel) der inneren horizontalen Ränder eines Objekts. Muss zusammen mit der Eigenschaft style mit der Option "custom" verwendet werden.
variabel
Schaltfläche, Kontrollkästchen, Optionsfeld
customBorderY
Ganzzahl
Setzt die Größe (in Pixel) der inneren vertikalen Ränder eines Objekts. Muss zusammen mit der Eigenschaft style mit der Option "custom" verwendet werden.
variabel
Schaltfläche, Kontrollkästchen, Optionsfeld
customOffset
Ganzzahl
Setzt einen eigenen Wert für Versatz in Pixel. Muss zusammen mit der Eigenschaft style mit der Option "custom" verwendet werden.
Durchläuft Inhalt der Bildschaltfläche mit der angegebenen Geschwindigkeit (in Ticks)
minimum: 0
Bildschaltfläche
loopBackToFirstFrame
Boolean
Bilder werden in kontinuierlicher Schleife angezeigt
TRUE / FALSE
Bildschaltfläche
switchBackWhenReleased
Boolean
Zeigt immer das erste Bild, wenn die Schaltfläche nicht angeklickt ist. Zeigt das zweite Bild bis zum Loslassen der Maustaste
TRUE / FALSE
Bildschaltfläche
switchContinuously
Boolean
Erlaubt dem Benutzer, die Bilder mit gedrückter Maustaste fortlaufend anzuzeigen(z.B. als Animation).
TRUE / FALSE
Bildschaltfläche
switchWhenRollover
Boolean
Ändert den Inhalt der Bildschaltfläche, wenn der Mauszeiger darüberzieht. Das Startbild erscheint, wenn der Cursor den Bereich der Schaltfläche verlässt
TRUE / FALSE
Bildschaltfläche
useLastFrameAsDisabled
Boolean
Legt bei Deaktivieren der Schaltfläche das letzte Thumbnail als Anzeige fest
Ändert die Position des Titels in Bezug zum zugewiesenen Objekt. Hat keine Auswirkung, wenn das Objekt nur einen Titel (kein zugewiesenes Bild) oder ein Bild (kein Titel) enthält.
"left", "right", "top", "bottom", "center"
Schaltfläche, Kontrollkästchen, Optionsfeld
threeState
Boolean
Ermöglicht für Objekt Optionsfeld einen dritten Status.
Mindestintervall zwischen Werten in Benutzung. Bei numerischen Steppern stellt diese Eigenschaft Sekunden dar, wenn dem Objekt ein Wert vom Typ Zeit zugewiesen ist und Tage bei einem Wert vom Typ Datum
Gibt das Set zum Verwalten markierter Datensätze in der Listbox an (Ist die Datenquelle Arrays ausgewählt, wird ein boolean Array mit dem gleichen Namen wie die Listbox verwendet)
variabel
Listbox
lockedColumnCount
Ganzzahl
Anzahl Spalten, die im linken Teil der Listbox erhalten bleiben muss - auch bei horizonalem Scrollen durch den Benutzer
minimum: 0
Listbox
staticColumnCount
Ganzzahl
Anzahl Spalten, die während der Ausführung nicht bewegt werden können
Erstellt Instanz eines speziellen JavaScript Objekts ($4d), um Aufrufe von 4D Projektmethoden zu verwalten. Muss zusammen mit der Eigenschaft webEngine verwendet werden
"all", "none"
Web Area
progressSource
String
Wert zwischen 0 und 100, der das Laden der Seite in den Web Bereich in Prozent anzeigt. Wird von 4D automatisch aktualisiert, lässt sich nicht manuell verändern
variabel
Web Area
urlSource
String
Definiert die geladene oder zu ladende URL durch den zugewiesenen Web Bereich
variabel
Web Area
webEngine
String
Zum Wählen zwischen zwei Rendering Engines für den Web Bereich, abhängig von den Spezifikationen der Applikation