Was ist neu in 4D v16 R4

Objektnotation

Objekte, mit 4D v14 als Programmierspracheobjekte eingeführt, seit 4D v15 direkt von der Datenbank-Engine unterstützt, weiter ausgebaut mit 4D v16 – erhalten in kommenden Releases eine drastische Erweiterung der Funktionalität, beginnend mit 4D v16 R4. Anfangs erscheint nur das Programmieren leichter und schneller, dies wird jedoch in nicht allzuferner Zukunft, Ihre Art Code zu schreiben und die Datenbank-Engine zu verwenden, revolutionieren.

Mit Objektnotation, in 4D v16 R4 als Vorschau verfügbar, können Sie direkt $myobject.attribute.subattribute:=5 schreiben oder mit $person.children[2].firstname auf ein Attribut zugreifen. Nur kurz zur Erinnerung, der Status Vorschau bedeutet, dass Sie die neue Funktionalität kennenlernen und ausprobieren können, sie aber noch nicht für den Produktionsbetrieb geeignet ist.

Das gilt nicht nur für die Sprache – Sie können Objektnotation auch als Ausdruck verwenden, sogar in Formularen! Sie können z.B. ein Formularobjekt mit einer Textvariable erstellen und weisen direkt das Objektattribut zu, wie [person]relatives.grandfather.grandfather.firstname. Sie müssen nicht mehr die Funktion OB Get rekursiv verwenden, um den Wert zu lesen und ihn einer temporären Variable zuzuweisen, nur um ihn anzuzeigen. Und Änderungen werden natürlich automatisch gespeichert.

Um die Features der Objektnotation zu verwenden, aktivieren Sie im Dialogfenster Datenbank-Eigenschaften auf der Seite Kompatibilität die Option Objektnotation. Diese Aktion lässt sich nicht rückgängig machen.

Wenn Sie dieses Feature aktivieren, dürfen die Zeichen Punkt (.) bzw. eckige Klammern ([ ]) nicht mehr in Namen von Variablen, Tabellen, Feldern und Projektmethoden verwendet werden. Wir empfehlen deshalb, vorher im MSC über die Aktion Anwendung prüfen zu überprüfen, ob Ihre Anwendung mit den Voraussetzungen der Objektnotation im Einklang ist. Die Elemente mit reservierten Zeichen werden im MSC Logbuch aufgelistet, so dass Sie schnell sehen können, was Sie in Ihrer Anwendung umbenennen müssen.

Objektnotation wird unterstützt im:

  • Methodeneditor: Beim Verwalten von Objekten ist die Objektnotation eleganter, leichter und intuitiver als OB Get und OB Set.
    Sie können Objektattribute direkt erstellen, lesen oder ändern, und sogar neue Elemente in einem Objekt Array erstellen. Hat z.B. ein Array in einem Objekt 3 Elemente und Sie schreiben in Element 10, wird es automatisch erweitert und die fehlenden Elemente dazwischen werden angelegt.
  • Formulareditor: Sie können Objektnotation als Datenquelle für Formularobjekte im Formulareditor verwenden. Komplexe Objekte lassen sich als ein einziges Eingabefeld anzeigen. Mit der Programmiersprache können Sie sogar vollkommen dynamisch ein Formular erstellen und Formular-Widgets mit Objektattributen verlinken.
  • Debugger und Runtime Explorer: Sie können Objektnotation im Debugger einsetzen, um Ihren Code zu testen und zu überprüfen.

Neuer Typ Collection

4D v16 R4 führt den neuen Typ Collection in die 4D Programmiersprache ein. Auf den ersten Blick sieht eine Collection wie ein Array aus. Der Unterschied ist, dass ein Array eine optimierte Liste mit Elementem desselben Typs ist (Array Longint, Array Text, …), während eine Collection eine Art Container mit einer Liste verschiedener Typen ist (eine Zahl, dann ein Text, eine Zahl, dann ein Bild, ein Objekt, sogar eine andere Collection, etc). Das macht eine Collection sehr flexibel. Ein Array benötigt zwar weniger Speicher und kann schneller sein, eine Collection ist dafür flexibler und beschleunigt die Entwicklungszeit.

Stellen Sie sich ein Objekt als eine Liste mit benannten Attributen vor, im Unterschied dazu ist eine Collection eine Liste unbenannter Attribute, die über einen Index zugänglich sind. Die Funktion New collection erstellt eine neue leere oder vorgefüllte Collection. Und Sie können mit der Objektnotation darauf zugreifen…

Funktion Null

Die neue Funktion Null prüft, ob ein Objektattribut oder Collection-Element einen unbekannten oder fehlenden Wert hat (beachten Sie den Unterschied zum Wert 0 oder zum leeren String “” mit einem nicht gesetzten Wert). Null ermöglicht auch, einen Attributwert auf unbekannt zu setzen. Und ja, Sie können hier auch die Objektnotation verwenden.

Unterstützung von Bildern in Objekten

Bilder lassen sich in einem Objektfeld oder einer Objektvariablen speichern. Mit dem Datentyp Objekt haben Entwickler ihren Kunden ermöglicht, die Datenbankstruktur selbst mit eigenen Feldern zu erweitern und dort verschiedene Arten von Informationen abzulegen. Bilder waren bisher nicht möglich.

Die Befehle OB Get und OB SET wurden aktualisiert, um den neuen Typ Is picture zu unterstützen. Damit lässt sich nun ein Bild in einem Objektfeld speichern. Und natürlich können Sie auch hier die Objektnotation verwenden…

JSON Objekte bestätigen

Das Arbeiten mit Objekten führt früher oder später zum Austausch von Objekten mit anderen Applikationen oder Services – und dafür müssen Sie JSON Strings analysieren. Solange diese Strings regelkonform definiert sind, ist alles gut. Da das jedoch nicht immer der Fall ist, gibt es eine neue Option, die Ihre Zeit zum Debuggen drastisch verkürzen kann: Der optionale Parameter * von JSON Parse erstellt zusätzliche Debug Information (Eigenschaft __symbols). Er gibt für jede Eigenschaft und Untereigenschaft des Objekts Pfad, Zeilenposition und Zeilenversatz an. Diese Information kann beim Debuggen nützlich sein.

Selbst wenn ein Objekt “well formed” ist, erfüllt es u.U. nicht die erforderlichen Spezifikationen oder Inhaltsnormen. Mit der neuen Funktion JSON Validate können Sie prüfen, ob die Struktur des Objekts zur vorgegebenen Spezifikation passt (JSON schema).

4D Write Pro

4D Write Pro Tabellen

Tabellen sind in 4D Write Pro angekommen – echte Tabellen und individuell anpassbare Zellen; geben Sie einen langen Text in eine Zelle ein, wird er automatisch umgebrochen und die Zellenbreite bleibt unverändert. Sie können eine Tabelle mit Stilelementen erstellen und per Programmierung den Stil der Tabelle oder ihrer Spalten, Zeilen und sogar einzelner Zellen verändern.

Die neue Funktion WP Insert table fügt eine leere Tabelle ein oder mit einer Anzahl Zellen und Zeilen. Damit Sie Tabellen in Ihrem 4D Write Pro Dokument verwalten können, wurden folgende neuen Funktionen geschaffen: WP Table append row, WP Table get rows, WP Table get columns, WP Table get cells. All diese Funktionen sind “thread-safe”.

4D Write Pro Hyperlinks

Einen Link zu Ihrem Firmenlogo oder Firmennamen hinzufügen, ist jetzt genauso einfach wie Text in Fettschrift setzen. Mit dem neuen Attribut wk link url lassen sich Hyperlinks zu Bildern, Text oder einer Kombination aus beiden hinzufügen. Dazu verwenden Sie einfach die Befehle WP SET ATTRIBUTES und WP GET ATTRIBUTES.

Gestalten Sie Ihre eigene Toolbar mit Standardaktionen

Erstellen Sie mühelos Ihre eigene 4D Write Pro Toolbar, ganz ohne Programmierung. Mit 4D v16 R4 wird der einfache, aber sehr leistungsstarke Mechanismus Standardaktionen weiter ausgebaut. Jetzt lassen sich auch Kontrollkästchen und PopUp-Menüs Standardaktionen zuordnen.

Mit Standardaktionen nutzen Sie die Vorteile automatischer Abläufe und sparen Zeit: 4D steuert die Aktivierung/Deaktivierung des Objekts automatisch je nach Kontext. Der aktuelle Status (für Kontrollkästchen) oder Wert (für PopUp-Menüs) wird je nach der aktuellen Textauswahl von 4D automatisch aktualisiert.

Altura-freie Produktreihe 4D Windows 64-bit

Die gesamte Produktreihe 4D Windows 64-bit basiert nun nicht mehr auf der Mac2Win Library von Altura. 4D Server Windows 64-bit war das letzte noch fehlende Glied, das nun mit 4D v16 R4 verfügbar ist. So kann 4D intern moderne Technologien der Windows Plattform nutzen und Sie profitieren von neuen Features, wie z.B. SDI.

SDI Unterstützung unter Windows

Unter Windows verwendete 4D gewöhnlich ein graues Hauptfenster (genannt MDI Fenster), in dem alle Anwendungsfenster als Unterfenster angezeigt wurden. SDI Applikationen, wie z.B. Microsoft Outlook, haben ein Hauptfenster und können viele zusätzliche Fenster öffnen, die vom Hauptfenster unabhängig sind. Sie lassen sich auf andere Bildschirme ziehen und bleiben sichtbar, selbst wenn das Hauptfenster ausgeblendet ist, usw…

Aber auch MDI bleibt für einige Business-Anwendungen vorteilhaft, da alle Fenster zum Erstellen der Anwendung zusammen gehören. Ein gutes Beispiel dafür ist Adobe Photoshop. Aus diesem Grund lässt 4D nun für doppelklickbare Anwendungen beide Modi zu.

Tabellenkalkulation 4D View Pro

4D v16 R4 enthält den allerersten Schritt der Tabellenkalkulation 4D View Pro als Vorschau. Entdecken Sie das neue 4D View Pro Formularobjekt und die neuen 4D View Pro Befehle. Erstellen Sie ein neues Dokument mit VP NEW DOCUMENT, sichern es mit VP EXPORT DOCUMENT auf der Festplatte oder mit VP Export to object in der Anwendung und öffnen es wieder mit VP IMPORT DOCUMENT oder VP IMPORT FROM OBJECT.

Eigenes Server Administrator-Fenster

Mit einer Reihe von Features derzeit in Entwicklung können Sie zukünftig Ihr eigenes Server Administrator-Fenster erstellen und selbst steuern, welche Informationen angezeigt werden oder durch den Administrator verändert werden können.

Information über Prozesse und Benutzer

Als einen ersten Schritt liefert die neue Funktion Get process activity eine Momentaufnahme (snapshot) der angemeldeten Benutzersitzungen, der dazugehörigen laufenden Prozesse und aller aktuellen Prozesse. Dazu gehören auch interne Prozesse, die über den Befehl PROCESS PROPERTIES nicht erreichbar sind. Mit den Angaben zu Sitzung/Prozess können Sie auch die seit Starten der Verbindung verbrauchte CPU Zeit des Prozesses (in Sekunden) und den Prozentsatz der Aktivität (z.B.: 2%)  berechnen.

Detaillierte Information über Lizenzen

Die neue Funktion Get license info gibt ausführliche Informationen über die installierten Lizenzen und die verwendeten/verfügbaren Lizenzen zurück.

Verbesserte Steuerung zum Anzeigen von Hilfetipps

Mit dem Befehl SET DATABASE PARAMETER können Sie ganz einfach alle Hilfetipps innerhalb einer 4D Anwendung per Programmierung deaktivieren oder aktivieren. Darüberhinaus können Sie auch die Zeitverzögerung und die maximale Dauer der Anzeige per Programmierung definieren. Aber das ist noch nicht alles, denn mit dem Befehl OBJECT SET HELP TIP können Sie den Text eines Hilfetipps auch dynamisch ändern.

Tab-Reihenfolge im Formular per Programmierung definieren

Sie können in einem Formular die Eingabefolge der Objekte per Programmierung definieren, d.h. Sie können steuern, welches Formularobjekt als nächstes ausgewählt wird, wenn der Benutzer die Tabulatortaste drückt. Die beiden neuen Befehle FORM SET ENTRY ORDER und FORM GET ENTRY ORDER ermöglichen, die Eingabefolge der aktuellen Formularobjekte für den aktuellen Prozess zu setzen bzw. zu erhalten. Das ist besonders hilfreich, wenn Sie Formulare dynamisch erstellen.

Verbesserung der Benutzeroberfläche für IPv6

4D v16 R4 enthält eine verbesserte Benutzerdarstellung von IPv6 Adressen für Anwender, die IPv6 Netzwerkkonfigurationen nutzen.

Sie wollen mehr wissen? Lesen Sie alle Blog Einträge zu 4D v16 R4!