Was ist neu in 4D v16 R4

Abrufen der Neuerungen in früheren R-Versionen >

Objekt-Notation

Objekte, eingeführt als Sprachobjekt mit 4D v14, unterstützt von der Datenbank-Engine mit 4D v15, erweitert mit 4D v16 – werden in den kommenden Versionen, beginnend mit 4D v16 R4, einen enormen Zuwachs an Funktionalität erfahren. Das fängt damit an, dass die Programmierung einfacher und schneller wird – und führt in nicht allzu ferner Zukunft zu einer Revolution in der Art und Weise, wie Sie Code schreiben und die Datenbank-Engine nutzen.

Mit der Objektnotation, die in 4D v16 R4 als Vorschau zur Verfügung steht, können Sie einfach $myobject.attribute.subattribute:=5 schreiben oder auf ein Attribut mit $person.children[2].firstname zugreifen. Zur Erinnerung: Der Preview-Status bedeutet, dass Sie mit der neuen Funktionalität spielen und sie erlernen können, sie ist aber noch nicht produktionsreif.

In der Tat können Sie die Objektnotation als Ausdruck verwenden. Legen Sie zum Beispiel ein Formularobjekt wie eine Textvariable an und weisen Sie direkt das Objektattribut zu, z. B. [Person]Verwandte.Großvater.Großvater.Vorname. Es ist nicht mehr notwendig, OB Get rekursiv zu verwenden, um den Wert zu lesen und ihn einer temporären Variablen zuzuweisen, nur um ihn anzuzeigen.

Um die Funktionen der Objektnotation nutzen zu können, müssen Sie die Objektnotation auf der Seite Kompatibilität des Dialogfelds Datenbankeinstellungen aktivieren. Diese Aktion ist nicht umkehrbar.

Wenn Sie diese Funktion aktivieren, sollten Sie beachten, dass Sonderzeichen wie Punkte (.) und/oder eckige Klammern ([ ]) in den Namen von Variablen, Tabellen, Feldern und Projektmethoden nicht mehr zulässig sind. Um zu überprüfen, ob Ihre Anwendung die Anforderungen an die Objektnotation erfüllt, können Sie die Aktion Anwendung überprüfen im MSC ausführen. Die Elemente, die verbotene Zeichen enthalten, werden im MSC-Protokoll aufgeführt, so dass Sie leicht herausfinden können, was in Ihrer Anwendung umbenannt werden muss.

Die Objektnotation wird unterstützt in:

  • Methoden-Editor: Die Verwendung der Objektnotation ist eleganter, einfacher und intuitiver in der Objektmanipulation als die Verwendung von OB Get und OB Set.
    Sie können Objektattribute direkt erstellen, lesen oder ändern und sogar neue Elemente in einem Objekt-Array-Attribut erstellen, indem Sie es einfach verwenden. Wenn z.B. ein Array innerhalb eines Objekts 3 Elemente hat und Sie schreiben in Element 10, wird es automatisch vergrößert und fehlende Elemente werden erstellt.
  • Formular-Editor: Sie können die Objektnotation als Datenquelle für Formularobjekte im Formular-Editor verwenden. Komplexe Objekte können als einzelne Eingabefelder angezeigt werden. Mit dieser Sprache können Sie sogar ein Formular vollständig dynamisch erstellen und die Formular-Widgets einfach mit Objektattributen verknüpfen.
  • Debugger und Runtime Explorer: Sie können die Objektnotation im Debugger verwenden, um Ihren Code zu testen und zu überprüfen.

Neuer Sammlungstyp

4D v16 R4 führt einen neuen Collection-Typ in die 4D Sprache ein. Auf den ersten Blick sieht eine Collection wie ein Array aus, aber während ein Array eine hochoptimierte Liste desselben Typs ist(Array longint, Array Text, …), ist eine Collection eine Art Container, der eine Liste individueller Typen speichert (ein longint, dann ein Text, dann eine Zahl, dann ein Bild, ein Objekt, sogar eine weitere Collection, usw.). Eine Sammlung ist sehr flexibel. Während ein Array weniger Speicherplatz benötigt und schneller sein könnte, ist eine Sammlung flexibler und verkürzt die Entwicklungszeit.

Sie können sich ein Objekt als eine Liste von benannten Attributen vorstellen, während eine Sammlung eine Liste von unbenannten Attributen ist, auf die mit einem Index zugegriffen wird. Der Befehl Neue Sammlung erstellt eine neue leere oder vorausgefüllte Sammlung. Und auf Sammlungen kann mit der Objektnotationzugegriffen werden…

Befehl Null

Der neue Befehl Null kann verwendet werden, um zu prüfen, ob ein Objektattribut oder ein Sammlungsmitglied einen unbekannten oder fehlenden Wert hat (beachten Sie den Unterschied zum Wert 0 oder einer leeren Zeichenkette „“ mit einem nicht gesetzten Wert). Er erlaubt auch, einen Attributwert auf unbekannt zu setzen. Und ja, es kann mit der Objektnotation verwendet werden.

Unterstützung von Bildern in Objekten

Bilder können in einem Objektfeld oder in einer Objektvariablen gespeichert werden. Viele Entwickler haben den Objektfeldtyp verwendet, um ihren Kunden die Möglichkeit zu geben, die Datenbankstruktur mit benutzerdefinierten Feldern zu erweitern und alle Arten von Informationen zu speichern. Bilder waren bisher nicht möglich.

Die Befehle OB Get und OB SET wurden aktualisiert, um den neuen Bildtyp Is zu unterstützen und ein Bild in einem Objektfeld speichern zu können. Und natürlich können Sie auch die Objektnotation verwenden…

JSON-Objekte validieren

Wenn Sie mit Objekten arbeiten, werden Sie früher oder später Objekte mit anderen Anwendungen oder Diensten austauschen – und dazu müssen Sie JSON-Strings parsen. Solange diese Strings gut definiert sind, ist alles in Ordnung, aber manchmal sind sie es nicht und eine neue Option kann Ihre Debugging-Zeit drastisch reduzieren. Der Parameter option * von JSON Parse erzeugt zusätzliche Debug-Informationen (Eigenschaft __symbols), die den Pfad, die Zeilenposition und den Zeilenversatz jeder Eigenschaft und Untereigenschaft des Objekts angeben. Diese Informationen können für Debugging-Zwecke nützlich sein.

Auch wenn ein Objekt gut geformt ist, kann es sein, dass es die geforderten Spezifikationen oder Inhaltsnormen nicht erfüllt. Mit dem neuen Befehl JSON Validate können Sie prüfen, ob die Struktur des Objekts einer bestimmten Spezifikation(JSON-Schema) entspricht.

4D Write Pro

4D Write Pro Tabellen

Tabellen kommen in 4D Write Pro. Wenn Sie einen großen Text in eine Zelle eingeben, wird der Text automatisch umbrochen, und die Breite der Zelle bleibt gleich. Sie können eine Tabelle von Grund auf neu erstellen und natürlich den Stil der Tabelle, ihre Spalten, Zeilen und sogar einzelne Zellen ändern, und das alles durch Programmierung.

Der neue WP-Befehl Tabelle einfügen ermöglicht es Ihnen, eine Tabelle mit einer bestimmten Anzahl von Zellen, Zeilen oder leeren Zellen zu erstellen. Die folgenden Befehle wurden erstellt, um Tabellen in Ihrem 4D Write Pro Dokument zu verwalten: WP Table append row, WP Table get rows, WP Table get columns, WP Table get cells. Alle diese neuen Befehle sind thread-safe.

4D Write Pro Hyperlinks

Das Hinzufügen eines Links zu Ihrem Firmenlogo oder Firmennamen ist jetzt so einfach wie das Stylen von Text in Fettschrift. Dank des neuen Attributs wk link url können Hyperlinks zu Bildern, Text oder einer Kombination aus beidem hinzugefügt werden, indem Sie einfach die Befehle WP SET ATTRIBUTES und WP GET ATTRIBUTES verwenden.

Gestalten Sie Ihre eigene Symbolleiste mit Standardaktionen

Erstellen Sie ganz einfach Ihre eigene 4D Write Pro Symbolleiste, ganz ohne Programmierung. Der einfache, aber sehr leistungsfähige Mechanismus der Standardaktionen wurde mit 4D v16 R4 nochmals erweitert. Standardaktionen können jetzt auch Kontrollkästchen und Popup-Menüs zugewiesen werden.

Durch die Verwendung von Standardaktionen profitieren Sie von automatischen Mechanismen, die Ihnen Zeit sparen: die Aktivierung/Deaktivierung des Objekts wird von 4D automatisch je nach Kontext gehandhabt und der aktuelle Status (bei Checkboxen) oder Wert (bei Popup-Menüs) wird von 4D automatisch entsprechend der aktuellen Textauswahl aktualisiert.

Altura-freie 4D Windows 64-Bit Produktlinie

Die gesamte 4D Windows 64-bit Produktlinie ist nicht mehr auf die Mac2Win Bibliothek von Altura angewiesen. 4D Server Windows 64-bit war der letzte Schritt, der mit 4D v16 R4 vollzogen wurde. Damit kann 4D intern moderne Technologien auf der Windows Plattform nutzen und Sie profitieren von neuen Funktionen wie SDI.

SDI-Unterstützung unter Windows

Unter Windows hatte 4D bisher ein graues Hauptfenster (MDI-Fenster genannt), in dem alle Anwendungsfenster (als Kindfenster) angezeigt wurden. SDI-Anwendungen, wie z.B. Microsoft Outlook, haben ein Hauptfenster, können aber viele zusätzliche Fenster öffnen, die unabhängig vom Hauptfenster sind. Sie können auf andere Bildschirme verschoben werden, sie bleiben sichtbar, auch wenn das Hauptfenster ausgeblendet ist usw…

Andererseits hat MDI auch Vorteile für einige Geschäftsanwendungen, da alle Fenster zusammengehören, um die Anwendung aufzubauen. Ein gutes Beispiel ist Adobe Photoshop. Aus diesem Grund erlaubt 4D beide Modi für zusammengeführte Anwendungen.

4D View Pro Tabellenkalkulationen

4D v16 R4 stellt den ersten Schritt der 4D View Pro Tabellenkalkulation als Vorschau vor. Entdecken Sie das neue 4D View Pro Formularobjekt und die neuen 4D View Pro Befehle. Erstellen Sie ein neues Dokument mit VP NEW DOCUMENT, speichern Sie es auf der Festplatte mit VP EXPORT DOCUMENT oder in der Datenbank mit VP Export to object und öffnen Sie es erneut mit VP IMPORT DOCUMENT oder VP IMPORT FROM OBJECT.

Benutzerdefiniertes Server-Verwaltungsfenster

Eine Reihe von Funktionen, die sich in der Entwicklung befinden, wird es Ihnen ermöglichen, Ihr eigenes Server-Administrationsfenster zu erstellen, in dem Sie steuern können, welche Informationen Sie anzeigen oder dem Administrator erlauben wollen, diese zu ändern.

Informationen über Prozesse und Benutzer

In einem ersten Schritt liefert der neue Befehl Prozessaktivität abrufen eine Momentaufnahme der verbundenen Benutzersitzungen, der zugehörigen laufenden Prozesse und aller aktuellen Prozesse, einschließlich interner Prozesse, die über den Befehl PROZESSEIGENSCHAFTEN nicht erreichbar waren. Sie können aus den zurückgegebenen Sitzungs-/Prozessinformationen auch die von diesem Prozess seit dem Verbindungsaufbau verbrauchte CPU-Zeit (in Sekunden) und den Aktivitätsprozentsatz (z. B.: 2 %) errechnen.

Detaillierte Informationen über Lizenzen

Der neue Befehl Get license info liefert detaillierte Informationen über die installierten Lizenzen und die verwendeten/verfügbaren Lizenzen.

Verbesserte Kontrolle der Anzeige von Hilfetexten

Mit dem Befehl SET DATABASE PARAMETER können Sie ganz einfach alle Hilfetexte innerhalb einer 4D Anwendung aktivieren oder deaktivieren. Darüber hinaus können Sie die Anzeigeverzögerung und die maximale Anzeigedauer pro Sprache festlegen. Aber das ist noch nicht alles, es ist auch möglich, den Text eines Hilfetextes mit dem Befehl OBJECT SET HELP TIP dynamisch zu ändern.

Definieren Sie die Reihenfolge der Registerkarten im Formular durch Programmierung

Mit dieser Funktion können Sie in einem Formular die Reihenfolge der Objekteingabe durch Programmierung festlegen, so dass Sie steuern können, auf welches nächste Formularobjekt der Fokus gelegt wird, wenn der Benutzer die TAB-Taste drückt. Zwei neue Befehle – FORM SET ENTRY ORDER und FORM GET ENTRY ORDER – erlauben es Ihnen, die Eingabereihenfolge der aktuellen Formularobjekte für den aktuellen Prozess dynamisch zu setzen bzw. zu holen. Diese Funktion ist besonders nützlich, wenn Sie Formulare dynamisch erstellen.

IPv6-bezogene Verbesserung der Benutzeroberfläche

4D v16 R4 bietet einige UI-Verbesserungen für eine bessere Benutzerfreundlichkeit bei der Verwendung von IPv6-Netzwerkkonfigurationen.

Wollen Sie mehr wissen? Lesen Sie alle Blogposts über 4D v16 R4!