Was ist neu in 4D v19 R4

4D Sprache

return. continue. break. Und mehr

Wir sind Ihren Feature-Wünschen im 4D Forum nachgekommen und haben mehrere Verbesserungen an der 4D Sprache vorgenommen!

  • Beginnend mit Anweisungen, die es Ihnen ermöglichen, einen Codeblock zu überspringen:
    • Das Schlüsselwort return beendet die Ausführung der Methode oder Funktion, in der es erscheint, und gibt die Kontrolle an die aufrufende Methode zurück. Es kann auch einen optionalen Wert zurückgeben.
    • Das break-Schlüsselwort beendet die Schleife, die es enthält. Die folgende Anweisung wird unmittelbar nach dem Hauptteil der Schleife ausgeführt.
    • Die continue-Anweisung beendet die Ausführung der Anweisungen in der aktuellen Iteration der Schleife und setzt die Ausführung der Schleife mit der nächsten Iteration fort.
  • Gefolgt von einer Kurzschlussauswertung: In einem Ausdruck, der einen AND- oder OR-Operator verwendet, bedeutet eine Kurzschlussauswertung, dass das zweite Argument nur dann ausgeführt oder ausgewertet wird, wenn das erste Argument nicht ausreicht, um den Wert des Ausdrucks zu bestimmen. Wir fügen zwei neue Operatoren hinzu, um dies zu erreichen:
    • && für den Operator AND:
    • || für den OR-Operator
  • Und dann haben wir einen ternären Operator, d.h. eine Bedingung, gefolgt von einem Fragezeichen ( ? ), einen Ausdruck, der ausgewertet werden soll, wenn die Bedingung wahr ist, gefolgt von einem Doppelpunkt (:), und schließlich den Ausdruck, der ausgewertet werden soll, wenn die Bedingung falsch ist: condition? value If True: value If False.

 

Neuer Befehl zum Abrufen detaillierter Informationen über Lizenzen

4D v19 R4 wird mit einem neuen Befehl ausgeliefert, der alle Informationen über Ihre Lizenznutzung liefert: Get License Usage. Wir haben auch unsere Diagnoseprotokolle erweitert. Dank dieser Funktion werden Sie in der Lage sein, den Lizenzverbrauch auf Ihrem Server zu verfolgen, Ihre Nutzung zu optimieren und vorausschauend für Ihre zukünftigen Bedürfnisse zu planen.

 

Mehr Optionen für eingabefähige Befehle

Der Befehl OBJECT SET ENTERABLE wurde erweitert, so dass Sie ein Feld, das nicht bearbeitet werden kann, besser verwalten können. Als dritten Parameter unterstützt der Befehl einen Boolean oder eine Ganzzahl.

  • Sie können den Befehl also wie bisher verwenden, ohne Ihren Code zu ändern, indem Sie einen Boolean übergeben. Nur die Eigenschaft enterable wird geändert (False oder True).
  • Oder Sie können eine Ganzzahl übergeben. So können Sie die Eigenschaften enterable und focusable für Ihr Feld festlegen.

 

User Interface

Hohe DPI unter Windows: Unterstützung für hochauflösende Bildschirme

High DPI steht für High Dots Per Inch. Er steht für die Pixeldichte; je höher der DPI-Wert, desto höher die Pixeldichte. Auf 4K-Bildschirmen kann die Pixeldichte so hoch sein, dass bei der üblichen Anzeige alle Symbole und Steuerelemente extrem klein dargestellt werden. In Windows können Sie daher die Skalierung von Text, Symbolen und Steuerelementen ändern. Auf 4K-Bildschirmen ist diese Funktion standardmäßig aktiviert. Wir haben hohe DPI-Werte zuerst auf dem Mac unterstützt und mit 4D v19 R4 ist 4D nun auch unter Windows voll kompatibel. Das Ergebnis ist eine bessere Text- und Bildqualität.

 
 

System WORKERS

Einen externen Prozess asynchron starten

Eine weitere stark nachgefragte Funktion ist für Sie verfügbar. Manchmal müssen Sie Prozesse im Hintergrund laufen lassen und bestimmte Aktionen auf der Grundlage des Ausgabecodes durchführen, sobald dieser verfügbar ist, während der Prozess noch läuft. Zum Beispiel, um einen Fortschrittsbalken anzuzeigen. Mit 4D können Sie einen Hintergrundprozess mit der neuen Klasse 4D.SystemWorker starten und automatisch Callback-Methoden ausführen, wenn der Prozess Informationen zurückgibt. Wenn Sie dies also mit einer Schnittstelle verwenden, bleibt die Schnittstelle für Ihren User ansprechbar, während der externe Prozess läuft, und wenn er beendet ist, können Sie Ihrem Client das Ergebnis anzeigen.

 

ORDA

Begrüßen Sie die Aliasnamen

4D v19 R4 wird mit einem neuen ORDA Konzept ausgeliefert: Aliase. Sie sind die logische und komplementäre Fortsetzung von berechneten Attributen. Wie der Name schon sagt, ist ein Alias eine Abkürzung zu einem bestehenden Datastore Objekt. Sie werden wie die berechneten Attribute in der “Entity Dataclass” definiert. Während ein berechnetes Attribut jede beliebige Berechnung oder Formel verarbeiten kann, ist ein Alias nur eine Abkürzung, die die Entwicklung schneller und einfacher macht. Ein Beispiel für die Verwendung von Aliasnamen ist der einfache Zugriff auf verknüpfte Attribute (was bedeutet, dass die Komplexität einer verknüpften Datenbank verborgen wird).

 

Deaktivieren der Standardzuordnung von NULL-Werten zu einem leeren Wert

Wenn Sie ein neues Feld in Ihrer Datenbank erstellen, können Sie in 4D wählen, ob NULL-Werte auf leere Werte abgebildet werden sollen oder nicht. Ab 4D v19 R4 wird 4D in neuen Projekten den NULL-Wert nicht mehr standardmäßig auf fehlende Daten abbilden.

Dies ist vorteilhaft, da ORDA perfekt für die Arbeit mit NULL-Werten ausgelegt ist und Ihnen viele unpraktische Umgehungen erspart.

 

 

Pessimistisches Lock-Management VIA Rest

Mit 4D v19 R4 können Sie die REST API verwenden, um eine Entity zu sperren oder zu entsperren. Dies ist besonders nützlich für:

  • Behalten Sie einen konsistenten Code bei, wenn Sie an die Arbeit mit der REST-API gewöhnt sind. Es besteht keine Notwendigkeit, eine Funktion in ORDA Data Model Classes zu schreiben, um eine Entity zu sperren/entsperren.
  • Reibungslose Verwendung der pessimistischen Sperren mit der REST-API.

4D for Mobile

Objektattribute für fortgeschrittene Anwendungen

Ab sofort können Sie fast alle Arten von Attributen in Ihren mobilen Projekten verwenden: Text, Datum, Zeit, Ganzzahlen. 4D v19 R4 bringt eine weitere Möglichkeit: Objektattribute. Damit können Sie Objektfelder in Ihrer mobilen Applikation in menschenlesbarem Format oder im JSON Format anzeigen. Objektfelder werden verwendet, um verschiedene Daten in Ihrer 4D Applikation zu speichern; jetzt sind sie auch in mobilen Applikationen leicht zu verwenden. Was bedeutet das? Sie können jetzt noch fortschrittlichere iOS- und Android-Applikationen erstellen.

 

Verbesserungen der Datenverwaltung

Mit 4D v19 R4 wurde der Datenbereich verbessert, um Ihnen mehr Informationen über die Daten zu geben, die Sie mit Ihrer mobilen Applikation verpacken werden. Zum Beispiel erhalten Sie die genaue Anzahl der Entities und die Datengröße für jede Datenklasse, um zu vermeiden, dass Sie zu viele Daten in Ihrer mobilen Anwendung erhalten. Diese Verbesserung hilft Ihnen auch, die Gültigkeit Ihrer Abfrage zu überprüfen, indem Sie auf die Schaltfläche Validieren klicken. Sie erhalten mehr visuelles Feedback über die Validierung Ihrer Abfragen mit Fehlermeldungen, wenn die Abfrage nicht korrekt ist.

 

Neu in 4D for Android 

Viele Verbesserungen wurden mit 4D v19 R4 in 4D for Android integriert:

  • Die Unterstützung von One to N Verknüpfungen: Anzeige der relativen Daten zu einem Datensatz im Listenformular und im Detailformular.
  • Online-Aktionen: Es ist möglich, eine Entity oder Entity-Selection im Online-Modus zu ändern.
  • Und Objektfeld formatiert: Zeigen Sie das Objektfeld in Ihrer mobilen Applikation im menschenlesbaren Format oder im JSON-Format an.
 
 
 

4D Write Pro

Seitenumbruch innerhalb von Tabellenzeilen

4D v19 R4 wird mit neuen Attributen ausgeliefert, um das Layout von Tabellen besser zu definieren. Damit können Sie komplexe 4D Write Pro Dokumente mit Leichtigkeit erstellen, aber vor allem optisch ansprechende Dokumente: Seitenumbrüchen innerhalb von Tabellenzeilen. Dies ist nützlich, wenn die Zellen längeren Text (oder mehrere Absätze) enthalten. Vielleicht ist es auch interessant zu definieren, dass eine Zelle (und damit eine Tabellenzeile) auch in zwei Teile geteilt werden kann, um den verfügbaren Platz auf den Seiten des Dokuments zu füllen:

  • wk page break inside paragraph kann natürlich auf Absätze angewendet werden, aber auch auf ein beliebiges Ziel wie das Dokument selbst, einen bestimmten Abschnitt, einen Bereich von Text usw. In allen Fällen wird das Attribut den Absätzen innerhalb des Ziels zugewiesen. Dies ist eine einfache Programmierfunktion.
  • wk page break inside table ermöglicht die Aufteilung einer Tabelle in zwei (oder mehr) Teile. Die Trennung erfolgt zwischen zwei Zeilen der Tabelle (wie üblich)
     
  • wk page break inside row ermöglicht ebenfalls die Aufteilung einer Tabelle, diesmal jedoch innerhalb von Zeilen. Beachten Sie, dass diese Option von der vorherigen abhängig ist. Wenn eine Tabelle nicht geteilt werden kann, können auch ihre Zeilen nicht geteilt werden.

 

Die Option “Seitenumbruch vermeiden” ist in den Widgets für die Symbolleiste und die Seitenleiste verfügbar.

Unterstützung VON dARK MODE 

Mit 4D v19 R4 ist 4D Write Pro dunkel geworden. Sie können auf macOS im Light- und Dark Mode entwickeln und ausliefern. Die letzten Widgets der Library sind Dark Mode (unter macOS) kompatibel:

  • 4D Write Pro Interface Symbolleiste
  • 4D Write Pro Benutzeroberfläche
  • Seitenleiste Rich Text Bereich

4D View Pro

Optionen der Arbeitsmappe

Wenn Sie ein Dokument mit 4D View Pro erstellen, ist es oft notwendig, die Benutzererfahrung zu optimieren, indem Sie die Arbeitsblatt-Tabs oder die Bildlaufleisten ausblenden, das Kontextmenü oder Drag-and-Drop deaktivieren… All diese Funktionen und mehr sind mit dem Befehl VP SET WORKBOOK OPTIONS möglich.

 

Beschleunigen Sie Ihren Entwicklungsprozess mit “Templates”.

Die Erstellung von Berichten oder Spreadsheets aus bestehenden Templates beschleunigt die Entwicklung. Wie ein User, der die Aktion Kopieren und Einfügen verwendet, können Sie als Entwickler mit 4D v19 R4 einfach einen Bereich von Zellen von einer anderen Stelle oder sogar aus einem anderen Bereich “kopieren”. Mit dem Befehl VP MOVE CELLS können Sie einen Bereich von Zellen an einer anderen Stelle kopieren/ausschneiden und einfügen, auch zwischen zwei Bereichen. Eine andere Möglichkeit, einen Bereich zu kopieren, besteht darin, ihn mit dem Befehl VP Copy to object in ein Objekt zu kopieren, um ihn z.B. in Ihrer Datenbank zu speichern, so dass Sie dieses Objekt bei Bedarf mit dem Befehl VP PASTE FROM OBJECT einfügen können.

 
Code-Editor

Schnelles Springen zu verschiedenen Funktionen einer Klasse

Klassen wurden mit 4D v18 R3 eingeführt. Sie ermöglichen es Ihnen, Ihre Geschäftslogik zu organisieren und sie schneller von der Benutzeroberfläche zu trennen.

Klassen bestehen aus mehreren Funktionen von unterschiedlicher Länge. Daher ist es nicht immer einfach, die zu ändernde Funktion zu finden oder von einer Funktion zur anderen zu wechseln. Es ist zwar möglich, den Explorer zu verwenden, der die Klassen und Funktionen anzeigt, aber wenn Sie im Editor-Fenster programmieren, möchten Sie vielleicht keine Zeit mit dem Wechsel der Fenster verschwenden.

In 4D v19 R4 wird die Liste der Funktionen in Ihrer Klasse in der Symbolleiste des Code-Editors angezeigt, so dass Sie schnell zu einer bestimmten Funktion springen können. 

 

Kommentar-Tags

4D v19 R4 bringt Kommentare auf eine neue Ebene mit Kommentar-Tags, um Ihre Kommentare besser zu organisieren. Tags werden verwendet, um Kommentare zu klassifizieren, indem man das Tag einfach an den Anfang der Kommentarzeile setzt. Wir haben drei Tags zu Ihrer Verfügung gestellt:

  • MARK
  • TODO
  • FIXME

Mit dem MARK-Tag können Sie Ihren Code in Abschnitte unterteilen. Sie können es auf drei verschiedene Arten schreiben. Die beiden anderen Tags, TODO und FIXME, werden auf die gleiche Weise geschrieben. Das Interessante daran ist, dass sie unterschiedliche Symbole in der Liste haben, mit denen Sie Ihren Code organisieren können, um Prioritäten für Ihre zukünftigen Aktionen zu setzen.

 

Verbesserte Produktivität mit der Syntax der Objektprüfung

Die automatische Vervollständigung für Klassen ist seit 4D v18 R4 verfügbar. Diese Funktion vereinfacht das Schreiben von Code und begrenzt Fehler in Funktionsnamen. Aber es vermeidet sie nicht ganz; es ist leicht, zwei Buchstaben zu vertauschen oder einen Großbuchstaben zu vergessen. Und dann verbringt man viel Zeit damit, herauszufinden, warum der Code nicht funktioniert. Was gibt es also Besseres, als 4D zu bitten, zu prüfen, ob die Klassen oder Funktionen schon vorher existierten? Ab 4D v19 R4 wird im Code-Editor eine Warnung angezeigt, wenn Sie eine Funktion aufrufen, die nicht existiert.

 

Neue Möglichkeiten zur Anpassung des Code-Editors

Zusätzlich zur Anpassung des Fensters und des Codebereichs bietet 4D v19 R4 zwei neue Anpassungsoptionen:

  • Die zehn Zwischenablagen ein- oder ausblenden. 
  • Das Symbol “Listen ein-/ausblenden” wurde nach unten rechts neben die Listen verschoben.

Einsatz

Verwendung doppelklickbarer Applikationen für Clients

Manchmal benötigen Anwender mehrer Instanzen Ihrer doppelklickbaren Anwendung jedoch mit unterschiedlichen Einstellungen. Bei dieser Art von Bereitstellungsarchitektur bitten Anwender bisher, eine doppelklickbare Anwendung für jede doppelklickbare Serveranwendung auf ihrem Computer zu installieren. Von nun an steht Ihnen ein neuer buildApp-Schlüssel zur Verfügung, mit dem Sie für jede duplizierte doppelklickbare Anwendung des Clients einen eigenen Ordner für die Benutzereinstellungen erstellen können (basierend auf dem Pfad der Anwendung): ClientUserPreferencesFolderByPath.

Wollen Sie mehr wissen? Lesen Sie alle Blogbeiträge über 4D v19 R4