Was ist neu in 4D v19

Dieses Dokument ist eine Zusammenstellung aller neuen Funktionen, die in 4D v19 verfügbar sind. Beachten Sie, dass zu jeder Funktion ein zugehöriger Blog-Beitrag gehört, der Sie durch konkrete Beispiele führt. Diese Blogbeiträge können durch Anklicken des Titels der Funktion aufgerufen werden.

Die Abschnitte mit dem Tag blank beziehen sich auf alle neuen Funktionen, die zwischen 4D v18 R6 und 4D v19 veröffentlicht wurden.

Dieses Dokument ist in sieben Abschnitte unterteilt:

Native Silicon Unterstützung

Nach der bahnbrechenden Ankündigung von Apple(die neuen Silicon Macs) haben wir 4D v19 sechs Monate früher als geplant veröffentlicht, um Ihnen so schnell wie möglich eine native Silicon Version von 4D zur Verfügung zu stellen. Zusätzlich zu den bemerkenswerten Leistungsverbesserungen gibt es folgende Neuerungen:

Da Silicon Macs nicht mehr die x86 Prozessorarchitektur wie Intel Macs und PCs verwenden, können sie nicht den gleichen kompilierten Code ausführen. Aus diesem Grund mussten wir unseren Compiler um eine spezielle Silicon-Kompilierung erweitern (nur im Projektmodus verfügbar). Sie können nun Ihre Anwendungen für Intel-Architekturen (Windows und Intel Mac), Silicon-Architekturen (Silicon Mac) oder beide Architekturen kompilieren.

Plugins

Auch die Plugins sind davon leicht betroffen. Damit ein Plugin sowohl auf Intel- als auch auf Silicon-Macs funktioniert, müssen Sie es als universelle Binärdatei kompilieren. Und wenn Sie Plugins von Drittanbietern verwenden, stellen Sie sicher, dass Sie Silicon-native oder universelle Binärversionen herunterladen.

Sie brauchen mehr Zeit?

Natürlich wird 4D v19 auch weiterhin mit Rosetta funktionieren. Wenn Sie Zeit brauchen, um Ihre Anwendung nativ zum Laufen zu bringen, ist es immer möglich, sie auf Rosetta auszuführen.

Eigenschaften des Projektmodus

Projekte sind eine Architektur, die für 4D Anwendungen einen großen Schritt nach vorne bedeutet. Sie bieten die Möglichkeit, Werkzeuge zur Versionskontrolle, kollaborative Programmierung, gemeinsame Nutzung von Code, Modularität und vieles mehr zu nutzen. Zum Zeitpunkt der Erstellung dieses Handbuchs haben wir dank der Projektarchitektur und der Möglichkeit, den Quellcode von Projektanwendungen über ein Versionskontrollsystem gemeinsam zu nutzen, mehr als 45 Repositories auf GitHub veröffentlicht. Dazu gehören HDIs, Komponenten und vollständige Beispielanwendungen.

4D v19 bietet eine ganze Reihe neuer Funktionen, die Ihre Programmiererfahrung erheblich verbessern werden.

Klassen

Dank des Projektmodus haben wir Klassen eingeführt. Eine Klasse ermöglicht es Ihnen, das Verhalten eines Objekts durch Eigenschaften und Funktionen zu definieren. Sobald eine Klasse definiert ist, können Sie Objekte dieser Klasse überall in Ihrem Code instanziieren. Jedes Objekt ist eine Instanz seiner Klasse. Klassen können andere Klassen erweitern und dann von deren Funktionen erben.

In 4D gibt es zwei Arten von Klassen: eingebaute 4D Klassen (die mit dem Befehl 4D zurückgegeben werden) und Benutzerklassen (die mit dem Befehl cs zurückgegeben werden).

Um ein Objekt als Instanz einer Klasse zu erstellen, verwenden Sie den cs-Befehl mit der Funktion new member. Ein weiterer wichtiger Begriff, den Sie kennen sollten, ist der Konstruktor. Der Konstruktor wird verwendet, um ein Objekt mit Standardattributen zu erstellen und zu instanziieren. Er wird automatisch aufgerufen, wenn ein Objekt initialisiert wird. Das Erstellen einer Klasse erfolgt über das Menü „Neu“ in der Symbolleiste oder über den Dialog „Explorer“. Es wird ein Klasseneditor angezeigt, in dem Sie den Klassenkonstruktor und die Funktionen erstellen können. Lesen Sie die Dokumentation

Vererbung von Klassen

Die Vererbung ermöglicht es einer Klasse, das Verhalten einer anderen Klasse (der Elternklasse ) zu erben. Um eine Kindklasse von einer Elternklasse abzuleiten, verwenden Sie das Schlüsselwort Class extends. Dadurch wird automatisch der Konstruktor der Elternklasse aufgerufen (wenn Sie keinen speziellen Konstruktor für die Kindklasse definiert haben). Sie können auch den Super-Befehl verwenden, um den Konstruktor der Elternklasse aufzurufen. Lesen Sie die Dokumentation

Benennung von Parametern für Methoden und Funktionen

Sie brauchen keine Zwischenvariable mehr zu verwenden, Sie können jetzt Ihre Parameter und Ergebnisse benennen, wenn Sie eine:

CSS-Vorschau im Formular-Editor

Diese Funktion war die am häufigsten geäußerte Funktionsanforderung und diejenige, die am schnellsten zu einer der am häufigsten geäußerten Funktionsanforderungen in unserem Forum für Funktionsanforderungen wurde. Sie ermöglicht es Ihnen, das endgültige CSS-Rendering im Formulareditor in der Vorschau anzuzeigen. Ein neues Symbol in der Symbolleiste ermöglicht es Ihnen, Ihr Formular mit oder ohne CSS-Rendering zu betrachten und sogar zu sehen, wie es mit dem spezifischen CSS-Rendering auf Mac oder Windows aussehen würde.

Für das Überschreiben von Eigenschaften im CSS-Modus wird im Formulareditor ein neuer Schildtyp angezeigt (ähnlich den Schildern für Objektmethode oder Eingabereihenfolge). Jetzt ist es einfach zu sehen, welche Objekte vom CSS-Styling betroffen sind. Lesen Sie die Dokumentation

Entwicklung von Server-Code

Das Entwickeln und Debuggen von Servercode in Projektanwendungen wird einfacher. Bei der Entwicklung im Team ist es üblich, dass mehrere Entwickler im Einzelbenutzermodus arbeiten und ihre Änderungen an ein Versionskontrollsystem übergeben. Der Befehl RELOAD PROJECT in Kombination mit Befehlen wie git pull ermöglicht es, einen laufenden Server mit neuem Code zu aktualisieren, ohne dass ein Neustart zum Testen oder sogar für die Produktion erforderlich ist.

Wenn sich ein 4D Developer Client mit einem 4D Server auf demselben Computer verbindet, wird die .4DZ Datei nicht vom Server zum Client übertragen. 4D Remote verwaltet die Projektdateien (Methoden, Formulare, Ressourcen, etc.) wie ein 4D Einzelplatz-Client. Die Projektdateien werden von 4D Server und 4D Remote gemeinsam genutzt. Auf diese Weise können Sie Ihren Code ändern und ihn während des laufenden Betriebs testen.

Wenn Sie möchten, dass der Server die geänderten Dateien neu lädt, wechseln Sie in der Entwicklungsumgebung in den Anwendungsmodus. Bringen Sie den 4D Server in den Vordergrund oder wählen Sie den Menüpunkt „Datei / Alles speichern“ in 4D Remote (oder verwenden Sie den neuen Befehl RELOAD PROJECT ).

Denken Sie daran, dass das Ausführen einer Methode auf der Client-Seite automatisch eine „Save all“ -Aktion ausführt und damit die geänderten Dateien auf der Server-Seite neu lädt. Lesen Sie die Dokumentation

Makros

Makros sind jetzt im Formular-Editor verfügbar. Mit einem Formularmakro können Sie:

  • Ändern, Löschen oder Hinzufügen einer Eigenschaft zu einem oder mehreren Formularobjekten, z. B. Ändern der Farbe oder Breite einer Schaltfläche
  • Hinzufügen oder Löschen eines oder mehrerer Formularobjekte (einschließlich der zugehörigen Objektmethode)
  • Formularobjekte im Editor auswählen oder die Auswahl aufheben
  • Anzeige eines modalen Dialogs zur Eingabe eines Parameters während der Bearbeitung
  • Berechnen der idealen Position von Formularobjekten und Verschieben derselben
  • Erstellen einer CSS-Klasse aus einem Formularobjekt zur Verwendung als Vorlage
  • Prüfen, ob die Bildpfade im Formular gültig sind
  • Öffnen Sie CSS-Dateien in Ihrem CSS-Editor, anstatt Dateien auf Ihrer Festplatte zu suchen
  • Prüfen Sie, ob XLIFF-Referenzen in den XLIFF-Dateien ihre Entsprechung haben
  • und vieles mehr!

Formularmakros sind über das Kontextmenü verfügbar. Host-Datenbankmakros werden zuerst angezeigt, gefolgt von Komponentenmakros. Um ein Makro auszuführen, klicken Sie einfach auf den Menüpunkt. Um Formularmakros zu erstellen, deklarieren Sie sie in einer formMacros.json-Datei auf der ersten Ebene des Ordners Sources in Ihrem Projekt. Schauen Sie sich unbedingt die Makrobeispiele an, die wir auf GitHub zur Verfügung gestellt haben. Sie können sie als Komponenten in Ihre Anwendungen integrieren, um sie zu testen. Lesen Sie die Dokumentation

Dokumentation der Methode

Sie können Ihre eigene Dokumentation für Datenbank-, Trigger-, Projekt- und Tabellenformularmethoden schreiben. Die Dokumentation wird in einer Markdown-Datei mit dem gleichen Namen wie die Methode oder das Formular in einem Dokumentationsordner gespeichert. Markdown ist ein Standardformat für die Dokumentation und ermöglicht erweiterte Formatierungsstile. Das Format kann in 4D Explorer, in GitHub oder anderen Tools angezeigt werden. Die Dokumentation kann eine Beschreibung eines Elements sowie alle Informationen enthalten, die notwendig sind, um zu verstehen, wie das Element in der Datenbank funktioniert. Um die Dokumentationsdatei in einer Projektdatenbank zu erstellen oder zu bearbeiten, klicken Sie im Explorer auf die Schaltfläche „Erstellen“ oder wählen Sie den Menüpunkt „Dokumentation bearbeiten“. 4D erstellt die entsprechende Datei und öffnet sie in Ihrem Standard-Editor mit einer voreingestellten Vorlage. Lesen Sie die Dokumentation

4D bietet drei automatische Schriftthemen, die die Richtlinien der jeweiligen Plattform berücksichtigen. Mit 4D v19 können Sie die Größe dieser automatischen Themen überschreiben und haben so mehr Kontrolle über die Darstellung Ihres Textes. Lesen Sie die Dokumentation

4D für iOS

Der Funktionsumfang von 4D für iOS wurde mit 4D v19 erweitert:

Offline arbeiten blank

Sie haben jetzt die Möglichkeit, offline zu arbeiten und mit Ihrem 4D Server auf sehr flexible Weise zu interagieren.

Wenn kein Netzwerk verfügbar ist, werden Ihre Aufgaben in eine Warteschlange gestellt und warten darauf, dass der Server wieder verfügbar ist. Dies garantiert Ihnen eine reibungslose und effiziente Arbeitsweise mit Anwendungen, die ohne Verzögerungen funktionieren. Lesen Sie die Dokumentation

Deep Linking

Deep Linking ermöglicht es Ihnen, eine URL zu teilen, zum Beispiel in einer E-Mail. Ein Klick auf die URL öffnet direkt einen bestimmten Datensatz in einer 4D für iOS App. In Kombination mit Push-Benachrichtigungen können Sie Vertriebsmitarbeiter über ein neues Angebot oder Versicherungsvertreter über einen neuen Fall informieren. Ein einziger Klick öffnet direkt die App und zeigt den entsprechenden Datensatz an. Lesen Sie die Dokumentation

Push-Benachrichtigungen

Push-Benachrichtigungen sind ein ideales Mittel, um die Benutzer Ihrer iOS-App zu beschäftigen und zu informieren.

Sie können Push-Benachrichtigungen einrichten, um die Synchronisierung auf iOS-Geräten auszulösen. Auf diese Weise wird die Benutzeroberfläche sofort aktualisiert und die Benutzer erhalten Echtzeitdaten, die sie bei Erhalt einer Benachrichtigung überprüfen können. Lesen Sie die Dokumentation

Neue Parameterformate: Unterschrift und Barcode

Um Ihre Anwendungen interaktiver zu gestalten, wurden neue Parameterformate zu 4D für iOS hinzugefügt:

  • Unterschriftenformat: Unterschreiben Sie mit der Fingerspitze und senden Sie Unterschriften direkt aus Ihrer App an den Server. Dies kann z.B. nützlich sein, um Kundenunterschriften nach einer Paketlieferung zu sammeln.
  • Barcode-Format: Verknüpfen Sie jeden Wert mit einem Barcode (EAN13, EAN8, QR-Code usw.), der durch einfaches Scannen aus einem Aktionsformular extrahiert werden kann. Dies ist eine sehr bequeme Methode, um z. B. eine Artikelreferenz durch Scannen eines QR-Codes direkt in Ihrer Anwendung hinzuzufügen. Lesen Sie die Dokumentation

Sie können auf One-to-Many-Beziehungen über Ihre Many-to-One-Beziehungen im Bereich Struktur zugreifen und diese veröffentlichen. Kurz gesagt bedeutet dies, dass Sie Many-to-Many-Relations anzeigen können, wodurch Sie iOS-Apps mit besserer Ergonomie als je zuvor bereitstellen können. Dies beinhaltet zusätzliche Funktionen wie das Hinzufügen von Interaktionen zu einem Feld, indem eine Beziehung darauf gezogen wird, und die Anzeige der entsprechenden Datensatznummer durch Klicken auf die One-to-Many-Beziehungen. Lesen Sie die Dokumentation

Unterstützung von Barcode-Scans

Die Suche wird durch die Unterstützung von Barcode-Scans erheblich verbessert. Dies ermöglicht die Anpassung von Anwendungen an Situationen vor Ort (z. B. für Lagerbestände).

Technisch gesehen ermöglicht diese Funktion Folgendes:

  • Filtern eines Listenformulars in Abhängigkeit vom Wert des Codes. Wenn ein Datensatz mit dem Barcodewert übereinstimmt, wird automatisch das Detailformular des Datensatzes geöffnet.
  • In Kombination mit Deep Linking: Anzeige spezifischer Listen- und Detailformulare durch einfaches Scannen eines Barcodes, dessen Werte URL Schemes oder Universal Links sind. Lesen Sie die Dokumentation

Anmelden mit QRCode blank

4D für iOS bietet eine neue, moderne Art, sich anzumelden. Die SignInWithQRCode-Anmeldeformularvorlage ermöglicht es App-Benutzern, sich durch Scannen des QRCodes anzumelden oder direkt auf die App zuzugreifen, wenn sie bereits authentifiziert wurden. Lesen Sie die Dokumentation

Optimierte Datensynchronisation

Der Prozess der Datensynchronisation von 4D für iOS wurde optimiert, wodurch die Geschwindigkeit der Datensynchronisation bis zu 25-mal schneller ist. Lesen Sie die Dokumentation

E-Mail-Authentifizierung

Mit 4D für iOS können Sie die Authentizität und Legitimität der Person feststellen, die versucht, sich bei Ihrer Anwendung anzumelden. Der Prozess aktualisiert den Sitzungsstatus eines Benutzers, um ihm Zugang zur Anwendung zu gewähren:

  1. Wenn ein Benutzer im Anmeldeformular eine E-Mail-Adresse eingibt und auf die Schaltfläche “ Anmelden“ klickt, wird der Sitzungsstatus auf „ausstehend“ aktualisiert und eine E-Mail mit einem Validierungslink an diese E-Mail-Adresse gesendet.
  2. Wenn der Benutzer auf den Bestätigungslink klickt, ändert sich der Sitzungsstatus von „ausstehend“ in „akzeptiert“.
  3. Der Benutzer kann die Anwendung erneut öffnen. Da der Sitzungsstatus nun „akzeptiert“ ist, wird der Zugriff gewährt.

Die Komponente, die den Prozess abwickelt und erleichtert, ist verfügbar, so dass Sie den Authentifizierungsprozess an Ihre eigenen Bedürfnisse anpassen können. Lesen Sie die Dokumentation

Vorlagen für Detailformulare erstellen

Da Detailformulare scrollbar sind, können Sie so viele Felder wie gewünscht in Ihre Detailformularvorlagen einfügen. Es gibt viele Möglichkeiten, Felder zu Ihren Detailformularen hinzuzufügen:

  • Wählen Sie eine leere Vorlage und legen Sie alle Felder darauf ab.
  • Ziehen Sie Felder an eine beliebige Stelle in der Ansicht, um sie unmittelbar nach dem zuletzt hinzugefügten Feld hinzuzufügen und anzuzeigen, oder legen Sie sie zwischen Feldern ab
  • Doppelklicken Sie auf ein Feld, um es am Ende der Liste hinzuzufügen.
  • Klicken Sie mit der rechten Maustaste auf eines der verfügbaren Felder in der Tabelle Felder auf der linken Seite. Dadurch wird ein Menü angezeigt, über das Sie fehlende Felder zu Ihren Detailformularen hinzufügen können. Lesen Sie die Dokumentation

Gebrauchsfertige Vorlagen

Mehr als 40 gebrauchsfertige Vorlagen sind im Projekt-Editor verfügbar. Die Galerie basiert auf einer dynamischen Liste von aktuellen Vorlagen, die auf GitHub verfügbar sind. Um eine Vorlage zu verwenden, ist sowohl für Listen- als auch für Detailformulare einMehr“-Symbol verfügbar. Klicken Sie darauf, um die gesamte Liste der Vorlagen aus dem Bereich Formulare anzuzeigen. Wählen Sie die Vorlage aus und 4D für iOS übernimmt die Installation. Sie können die Vorlage dann an Ihre Bedürfnisse anpassen. Lesen Sie die Dokumentation

ORDA

4D v19 bringt weitere Verbesserungen für ORDA. Neben den verschiedenen verfügbaren Funktionen (siehe unten) ermöglicht ORDA die Erstellung von High-Level-Klassenfunktionen oberhalb des Datenmodells. Dies ermöglicht es Ihnen, geschäftsorientierten Code zu schreiben, um die Komplexität zu verbergen, Fehler zu reduzieren und den Entwicklungsprozess zu beschleunigen. Außerdem können Sie Ihr Projekt wie eine API mit einem REST-Server bereitstellen.

ORDA-Klassen zur Handhabung des Datenmodells

Die ORDA-Struktur (Datenspeicher, Datenklasse, Entität, Entitätsauswahl) besteht aus stark typisierten Objekten, die mit spezifischen ORDA-Klassen verknüpft sind. Das bedeutet, dass Sie Funktionen schreiben können, die die Komplexität der physischen Implementierung Ihrer Daten verbergen.

4D erstellt automatisch die folgenden Objekte:

  • Entitätsklasse: Zur Implementierung von Funktionen, die sich auf eine Entität beziehen (z.B. zur Berechnung der Versandkosten für das aktuelle Angebot. Code, der einem bestimmten Datensatz zugeordnet ist).
  • EntitySelection-Klasse: Für die Implementierung von Funktionen, die sich auf eine Entitätsauswahl beziehen (z. B. um eine Statistik über die ausgewählten Datensätze zu erstellen. Code, der einer Auswahl zugeordnet ist)
  • DataClass-Klasse: Für die Implementierung von Funktionen, die sich auf die Datenklasse beziehen (um Code auszuführen, der sich auf eine Tabelle bezieht, aber unabhängig von einem bestimmten Datensatz oder einer Auswahl ist. Zum Beispiel zum Erstellen eines neuen Datensatzes auf der Grundlage der angegebenen Parameter)
  • DatenSpeicher: Für die Implementierung von Funktionen, die sich auf den Datenspeicher beziehen (zur Ausführung von Code, der sich nicht auf eine Tabelle oder einen Datensatz bezieht, ähnlich einer generischen Projektmethode). Lesen Sie die Dokumentation

ORDA-Datenmodellklassen und REST

Sie können Klassenfunktionen, die für das ORDA-Datenmodell definiert wurden, über REST-Anfragen aufrufen, um von der exponierten API des angestrebten 4D-Anwendungsprojekts zu profitieren. Sie können Ihre Geschäftslogik mit einer kontrollierten API (über Ihre Klassen) für andere Tools, z. B. Web-Frameworks wie Angular oder React, zugänglich machen. Lesen Sie die Dokumentation

Anwendungsbereich und Ausführungskontext für Funktionen

Im Client/Server-Modus werden die Funktionen der ORDA-Klassen standardmäßig auf dem Server ausgeführt. Mit dem neuen Schlüsselwort local können Sie festlegen, dass einige Funktionen auf dem Client ausgeführt werden. Außerdem können Sie mit dem neuen Schlüsselwort exposed festlegen, welche Funktionen als APIs für REST-Clients veröffentlicht werden sollen (oder nicht). Lesen Sie die Dokumentation

Schleifen mit einem neuen 4D Tag blank

Ein neues 4D-Tag ist jetzt verfügbar: das 4DEACH-Tag. Es kann sowohl als 4D-Tag in SHTML-Seiten als auch mit dem Befehl PROCESS 4D TAGS verwendet werden, was die Verwendung von ORDA oder Object in PROCESS 4D TAGS oder SHTML vereinfacht. Lesen Sie die Dokumentation

Modell-Update

Wenn Sie mit 4D im Standalone-Modus arbeiten, müssen Sie Ihre Datenbank nicht mehr neu starten, um einen aktuellen Datenspeicher zu haben, wenn die Struktur aktualisiert wird.

Wenn Sie im Client/Server-Modus arbeiten, funktioniert dies problemlos für Code, der auf dem 4D Server läuft. Bei Remote-Clients müssen Sie lediglich den Client neu starten, der die Aktualisierung der Struktur benötigt. Lesen Sie die Dokumentation

Gemeinsame Auswahl von Objekten

Manchmal möchten Sie eine Entity-Auswahl mit einem anderen Prozess gemeinsam nutzen oder sie für alle Prozesse verfügbar machen. Stellen Sie sich zum Beispiel vor, Sie führen eine komplexe Abfrage durch, um alle überfälligen Rechnungen zu finden, den Endbenutzern die Möglichkeit zu geben, einige (oder alle) davon auszuwählen und eine Zahlungserinnerung per E-Mail zu senden. Das Versenden von E-Mails erfolgt am besten in einem anderen Prozess, damit der Benutzer nicht blockiert wird.

Anstatt eine Liste von Primärschlüsseln zu erstellen, die an den anderen Prozess weitergegeben wird, kann eine gemeinsame Entitätsauswahl direkt an einen anderen Prozess weitergegeben werden. Gemeinsame Entitätsauswahlen können sogar an das Storage-Objekt angehängt werden, damit sie von allen Prozessen genutzt werden können.

Kurz gesagt, eine Entitätsauswahl kann gemeinsam genutzt oder nicht gemeinsam genutzt werden:

  • Eine gemeinsam nutzbare Entitätsauswahl kann in einem gemeinsam genutzten Objekt oder einer gemeinsam genutzten Sammlung gespeichert werden und kann von mehreren Prozessen oder Workern gemeinsam genutzt werden. Sie erlaubt nicht das Hinzufügen von neuen Entitäten. Der Versuch, eine Entität zu einer gemeinsam nutzbaren Entitätsauswahl hinzuzufügen, führt zu einem Fehler.
  • Eine nicht-teilbare Entitätsauswahl kann nicht zwischen Prozessen geteilt werden, noch kann sie in einem gemeinsamen Objekt oder einer gemeinsamen Sammlung gespeichert werden. Der Versuch, eine nicht gemeinsam nutzbare Entitätsauswahl in einem gemeinsamen Objekt oder einer gemeinsamen Sammlung zu speichern, führt zu einem Fehler. Eine nicht gemeinsam nutzbare Entitätsauswahl lässt jedoch das Hinzufügen neuer Entitäten zu. Lesen Sie die Dokumentation

Neue Methoden für die Entitätsauswahl

Es stehen Ihnen neue Methoden zur Verfügung:

  • extract(): um Daten aus einer Entitätsauswahl zu extrahieren. Damit können Sie eine vollständig angepasste Sammlung mit den Daten Ihrer Entitätsauswahl erstellen. Sie können die Attribute der Datenklasse, die Sie extrahieren möchten, und ihre Namen in der resultierenden Sammlung angeben.
  • refresh(): macht die Entitätsauswahldaten im ORDA-Cache ungültig. Es löst eine Aktualisierung vom Server aus, wenn Sie die Daten das nächste Mal verwenden. Standardmäßig läuft der ORDA-Cache nach 30 Sekunden ab. Verwenden Sie daher diese Methode, wenn Sie sofort aktuelle Daten benötigen. Lesen Sie die Dokumentation

4D-Sprache und andere Programmierfunktionen

Unterstützung des Dark Mode unter macOS blank

4D hat Unterstützung für den Dark Mode hinzugefügt, der automatisch angewendet wird, wenn der Dark Mode auf macOS-Ebene aktiviert ist. Dies ist nur der Anfang. In zukünftigen Versionen werden weitere Funktionen hinzukommen, wie z. B. die Unterstützung aller Komponenten (z. B. das 4D Write Pro Widget) und der Design-Modus. Lesen Sie die Dokumentation

Mehrere Themen für den Code-Editor blank

4D bietet Ihnen Grundthemen, die Sie erweitern und an Ihren eigenen Geschmack anpassen können:

  • „Standardthema hell“ (basierend auf dem klassischen Farbeditor)
  • „dunkles Standardthema“ (neue Farbe)

Wenn Sie die Farben des Themas Ihres Kollegen bevorzugen oder wenn Sie ein Thema finden, das Ihrem Geschmack entspricht, z. B. auf GitHub, können Sie es importieren, indem Sie die JSON-Theme-Datei in:

  • „<diskName>/Benutzer/<Benutzername>/Application Support/4D/4DEditorTheme“ auf macOS
  • „<diskName>:\Benutzer/<Benutzername>\AppData\Roaming\4D\4DEditorTheme“ unter Windows. Lesen Sie die Dokumentation
Starten Sie eine Kompilierung durch Programmierung blank

In Systemen zur kontinuierlichen Integration wird jedes Mal, wenn Code eingereicht wird, oder stündlich, automatisch eine Kompilierung des Quellcodes gestartet. Auf diese Weise können Sie Zusammenführungen auf dem Code Management Server überprüfen. Ab 4D v19 können Sie mit dem neuen Befehl Projekt kompilieren die Kompilierung des Codes starten und so ein solches System einrichten. Lesen Sie die Dokumentation

Verwalten Sie die Informationen Ihrer Anwendung blank

Um Ihre Anwendung zu erstellen, verwenden Sie den Befehl BUILD APPLICATION mit einer Reihe von XML-Schlüsseln, mit denen Sie die erstellte Anwendung konfigurieren können. Nach dem Build-Prozess können Sie Informationen wie Unternehmen, Copyright oder Version der Anwendung hinzufügen. Ab 4D v19 können Sie diese Informationen auf Windows- oder macOS-Plattformen lesen, hinzufügen oder ändern, ohne die XML-Sprache und die Struktur der info.plist-Datei beherrschen zu müssen.

Zu diesem Zweck haben wir der Klasse File zwei neue Funktionen hinzugefügt, die das Lesen und Schreiben von Anwendungsinformationen ermöglichen:

  • Um die Informationen zu einer .exe- (Windows) oder .plist-Datei (macOS) hinzuzufügen, können Sie ein Objekt mit den gewünschten Attributen an die Funktion setAppInfo übergeben.
  • Um die Informationen aus einer .exe- oder .plist-Datei zu lesen, verwenden Sie einfach getAppInfo, und Sie erhalten alle Attribute in einem Objekt. Lesen Sie die Dokumentation

Vereinfachen Sie die Erstellung des 4D Archive Client blank

Seit macOS Big Sur können unsignierte Anwendungen nicht mehr ausgeführt werden. In der Vergangenheit haben wir einen Workaround veröffentlicht, um Client-Server-Anwendungen zu erstellen, die auf einem Windows Server laufen und Verbindungen von Mac Clients akzeptieren. Mit der Veröffentlichung von 4D v19 haben wir die Anwendungserstellung in 4D aktualisiert, um dieses Szenario zu handhaben.

Entwicklung des 4D Log-Formats blank

Wir haben vor kurzem unsere Protokollformate überarbeitet, um die Lesbarkeit und die Kompatibilität mit automatisierten Analysen zu verbessern. Wir haben diese Verbesserungen als Reaktion auf reale Situationen vorgenommen, die wir erlebt haben, und dabei direkt die Probleme angegangen, die unsere Möglichkeiten zur Verwendung von 4D Protokollen eingeschränkt haben. Lesen Sie die Dokumentation.

Verwendung von Sammlungen und Listen in Formularobjekten blank

Ab 4D v19 können Sie Sammlungen verwenden, um den Inhalt einiger Schnittstellenobjekte zu definieren, auch mit der Funktion Form. Dies ist sehr nützlich für das generische Schnittstellenmanagement. Wir haben auch die Verwendung von Listen verbessert.

Die Verwendung von Listen wurde verbessert:
Hierarchische Listen
Tabulator-Steuerelemente (erster Anwendungsfall)

Sammlungen können jetzt als Referenzen mit den folgenden Objekten verwendet werden:
– Dropdown-Listen (auch bekannt als „Pop-up-Listen“)
Kombinationsfelder
– Tabulator-Steuerelemente (zweiter Anwendungsfall). Lesen Sie die Dokumentation

Neue Deklarationssyntax

Eine neue Syntax zur Deklaration von Variablen ist jetzt verfügbar. Sie verwendet das Schlüsselwort var, den Namen der Variablen und ihren Typ. Mit dieser neuen Syntax können Sie die Autovervollständigung bei der Deklaration Ihrer Variablen erheblich verbessern. Sie können Variablen sowohl mit der klassischen als auch mit der neuen Syntax in derselben Datenbank deklarieren. Lesen Sie die Dokumentation

Anzeige des Prototyps und Kurzbeschreibung

Um das Schreiben von Code im Editor zu vereinfachen und zu erleichtern, werden im Code-Editor der Prototyp einer Funktion und eine Kurzbeschreibung angezeigt.

In der Vorschlagsliste werden die intelligente Code-Vervollständigung (mit Kurzbeschreibung) und der Prototyp angezeigt, damit Sie den Code schneller und korrekter schreiben können. Und während Sie Ihre Funktion schreiben, zeigt 4D den Prototyp der Funktion und eine kurze Beschreibung der Funktion an. Außerdem wird der Parameter hervorgehoben, den Sie gerade vervollständigen. Lesen Sie die Dokumentation

E-Mails

OAuth 2.0 Unterstützung

OAuth 2.0 ist ein Authentifizierungs- und Autorisierungsstandard, der Benutzerdaten schützt, indem er den Zugriff auf die Daten ermöglicht, ohne die Identität oder Anmeldeinformationen des Benutzers preiszugeben. In letzter Zeit haben E-Mail-Server damit begonnen, diesen Standard zu verwenden, um die Sicherheit zu erhöhen. Office365 und Gmail empfehlen die Verwendung von OAuth 2.0 für den Umgang mit Emails.

Ab 4D v19 bieten wir eine Möglichkeit, OAuth 2.0 einzurichten. IMAP-, SMTP- und POP3-Transporter unterstützen jetzt von Haus aus das OAuth 2.0-Protokoll. Lesen Sie die Dokumentation

Verwalten von IMAP-Flags

Das IMAP-Protokoll erlaubt es Ihnen, eine Liste von Flags mit einer Nachricht zu verknüpfen, um zusätzliche Informationen zu verwalten. Wir haben dem IMAP-Transporter-Objekt eine Reihe von Funktionen hinzugefügt, um IMAP-Flags hinzuzufügen oder zu entfernen.

Mit dem IMAP-Protokoll können Sie fünf Flags verwalten:

  • \Seen: Die Nachricht wurde gelesen.
  • \Answered: Die Nachricht wurde beantwortet.
  • \Flagged: Die Nachricht ist als „gekennzeichnet“ für dringende/besondere Aufmerksamkeit markiert.
  • \Gelöscht: Die Nachricht ist als „zu löschen“ markiert. Die Löschung wird wirksam, wenn die Funktion expunge() aufgerufen wird, die Mailbox gewechselt oder die Verbindung geschlossen wird. Dieses Flag wird bereits von der Funktion delete() hinzugefügt
  • \Draft: Die Nachricht ist noch nicht fertig verfasst (als Entwurf markiert). Lesen Sie die Dokumentation

Erstellen, Löschen und Umbenennen von Postfächern mit IMAP blank

Es stehen Funktionen zur Verfügung, mit denen Sie Ihre Postfächer durch Programmierung verwalten können. Dazu gehören das Erstellen, Umbenennen und Löschen von Postfächern. Ein Postfach wird in E-Mail-Clients wie Microsoft Outlook oder Apple Mail als Ordner angezeigt. Lesen Sie die Dokumentation

E-Mails in einer bestimmten Mailbox speichern

Wenn Sie eine E-Mail von 4D aus versenden und Ihre Kunden erwarten, dass sie eine Kopie in dem von Outlook oder Apple Mail angezeigten „Gesendet“-Postfach erhalten, können Sie eine Kopie der E-Mail nach dem Versand speichern:

  1. Legen Sie zwei Transporter an: einen SMTP-Transporter, um die E-Mail an Ihren Client zu senden, und einen IMAP-Transporter, um die E-Mail auf Ihren Mailserver zu laden.
  2. Nachdem Sie Ihre E-Mail mit SMTP gesendet haben, verwenden Sie die Funktion append() des IMAP-Transporters. Lesen Sie die Dokumentation

E-Mails suchen und herunterladen

Die searchMails-Methode ermöglicht das Abrufen einer Liste von Nachrichten anhand von Kriterien wie z. B. alle ungelesenen E-Mails oder alle E-Mails von einer bestimmten Person innerhalb der letzten 4 Wochen. Der Befehl gibt eine Sammlung von E-Mail-IDs zurück, die direkt von der neuen getMails-Methode verwendet werden können (z. B. um sie herunterzuladen). Lesen Sie die Dokumentation

Kopieren, Verschieben und Löschen von E-Mails

Drei neue Funktionen wurden dem IMAP-Transporter hinzugefügt: copy(), move() und delete(). Lesen Sie die Dokumentation

Empfangen von E-Mails mit POP3

Mit dem neuen Transporter-Befehl POP3 New können Sie Ihre E-Mails lokal über POP3 herunterladen und von Ihrem E-Mail-Server entfernen. Das Post Office Protocol (POP) ist ein Internet-Standardprotokoll, das zum Abrufen von E-Mails von einem Mailserver verwendet wird. Dieser Standard ist nützlich für Aktionen wie das Herstellen einer Verbindung zu einem POP3-Server, das Abrufen von Nachrichten, um sie automatisch zu verarbeiten (um sie in Ihrer lokalen Datenbank zu speichern), und das Löschen von Nachrichten vom Server. Zusätzlich wurden mehrere Methoden hinzugefügt, um die E-Mail-Verarbeitung zu verbessern:

  • getMailInfoList(): Liefert Informationen über alle Nachrichten in Ihrer Mailbox.
  • getMailInfo(): Gibt Informationen über eine einzelne Nachricht zurück.
  • getMail(): Hiermit können Sie bestimmte Nachrichten herunterladen, indem Sie eine von getMailInfoList() zurückgegebene Nachrichtennummer als Parameter übergeben.
  • delete(): Kennzeichnet bestimmte Nachrichten, die beim Schließen der Sitzung gelöscht werden sollen.
  • getBoxInfo(): Gibt die Anzahl der E-Mails in Ihrem Postfach und die Größe des Postfachs zurück. Lesen Sie die Dokumentation

Empfangen von E-Mails mit IMAP

Wie bei SMTP und POP3 behandelt der neue Befehl IMAP New transporter das IMAP-Protokoll. Wir haben Befehle hinzugefügt, die die Auswahl eines Postfachs und das Herunterladen einer E-Mail ermöglichen. Lesen Sie die Dokumentation

E-Mails im MIME-Format herunterladen

4D v19 bietet einen Befehl, mit dem Sie E-Mails in ihrem ursprünglichen, nicht konvertierten Empfangsformat speichern können. Mit der Methode POP3_transporter.getMIMEAsBlob( ) können Sie ein BLOB mit dem MIME-Inhalt einer bestimmten Nachricht abrufen, das Sie in Ihrer Datenbank oder an einem anderen Ort speichern können. Lesen Sie die Dokumentation

Verschlüsseln Sie Ihre eigenen Daten mit dem 4D Algorithmus blank

4D bietet Ihnen eine einfache, aber leistungsstarke Möglichkeit, Ihre Daten zu verschlüsseln. Jetzt können Sie denselben Algorithmus, der für die Datenverschlüsselung verwendet wird (AES-256), auch für Ihre eigenen Bedürfnisse nutzen. So können Sie nun mit einer Reihe neuer Befehle jede beliebige Information ver- und entschlüsseln: Verschlüsseln von BLOB-Daten und Entschlüsseln von BLOB-Daten. Lesen Sie die Dokumentation

Neue CryptoKey-Klasse

Die neue Klasse CryptoKey bietet eine Reihe von Methoden zur Durchführung gängiger kryptografischer Operationen (z. B. Signatur und Überprüfung, Verschlüsselung und Entschlüsselung). Sie bietet eine Möglichkeit, um sicherzustellen:

  • Vertraulichkeit (Schutz der Daten vor unberechtigtem Zugriff)
  • Integrität (Sicherstellung der Vollständigkeit und Richtigkeit der Daten)
  • Authentizität (Überprüfung der Authentizität einer Nachricht oder eines Absenders/Empfängers) Lesen Sie die Dokumentation

Web

Skalierbare Web-Sitzungen

Der 4D Web Server unterstützt jetzt skalierbare Websitzungen, einen neuen Typ von Websitzungen, der die Leistung Ihrer Webanwendungen erheblich verbessert.

Skalierbare Web Sessions können mehrere Prozesse im präemptiven Modus verarbeiten. Das bedeutet, dass sie mehrere User-Agent-Anfragen gleichzeitig bearbeiten können und auch Daten zwischen diesen Prozessen austauschen können. Lesen Sie die Dokumentation

SameSite- und Secure-Attribute für Cookies blank

Cookies haben sich im Laufe der Jahre weiterentwickelt, aber sie haben einige Altlasten hinterlassen. Um damit umzugehen und ein „Secure-by-default“ -Modell für Cookies zu ermöglichen, ändern Browser (einschließlich Safari, Chrome, Firefox und Edge) ihr Verhalten in Bezug auf die Attribute SameSite und Secure. Aus diesem Grund bringt 4D v19 einige Verbesserungen mit sich. Lesen Sie die Dokumentation

Unterstützung für Cross-origin Resource Sharing (CORS)

Das CORS-Protokoll verhindert, dass eine Webseite Anfragen an andere Domains als die eigene stellt. Wenn Sie jedoch anderen Sites erlauben müssen, HTTP-Anfragen an Ihren Server zu stellen, um Daten zu erhalten oder zu senden, ist dies nun möglich:

  • Programmierung: dank der Befehle WEB SET OPTION und WEB Server . Sie nehmen Domain-Parameter auf, um bestimmte Aktionen zu ermöglichen (GET, POST, HEAD, PUT)
  • Datenbankeinstellungen: dank der im Fenster Einstellungen > Web > Optionen (II) verfügbaren Optionen. Lesen Sie die Dokumentation

Data Explorer (Vorschau)

4D v19 bietet eine Vorschauversion des 4D Data Explorer. 4D Entwickler und Administratoren können ihre Anwendungsdaten jetzt ganz einfach in einem Webbrowser untersuchen, ohne eine Web Server Lizenz zu benötigen. In diesem Video sehen Sie das Produkt in Aktion.

Angepasster 4D Cache-Ordner für gemergte 4D Server

Wenn auf Ihrem Rechner eine zusammengeführte Serveranwendung mit verschiedenen 4D Versionen läuft, kann es zu Problemen aufgrund des gemeinsamen 4D Strukturordners kommen. Um die gemeinsame Nutzung dieses Systemordners durch mit verschiedenen 4D Versionen erstellte Merged Server Anwendungen zu vermeiden, können Sie jetzt den Ordnernamen während des Build Application Prozesses mit dem neuen buildApp Schlüssel definieren, um Ihren eigenen Strukturordner festzulegen. Lesen Sie die Dokumentation

Angepasster 4D Cache-Ordner für gemergte 4D Clients

Wenn Sie Ihre Remote-Anwendung mit mehreren Servern verbinden, kann es vorkommen, dass Sie einen großen lokalen Ressourcenordner im System erhalten, der viel Zeit, Volumen und Bandbreite verbraucht. Der neue buildApp-Schlüssel ermöglicht es, denselben lokalen Ressourcenordner für alle identischen Server zu verwenden. Lesen Sie die Dokumentation

Verbesserte Journal-Integration

Wenn ein 4D Server in der Produktion eingesetzt wird, sollte alles vollautomatisch und ohne Eingreifen eines Administrators ablaufen. Dies ist besonders wichtig bei Auto-Update und beim Betrieb im Headless-Modus. Nach einem Stromausfall oder Absturz können kleine Fehler im Journal den automatischen Neustart eines 4D Servers verhindern. Eine neue Option ermöglicht es nun, unkritische Fehlermeldungen zu unterdrücken (sie aber dennoch in einem Protokoll zu melden), um die Ausfallzeit des Systems zu reduzieren. Lesen Sie die Dokumentation

Dynamische Erteilung von Benutzerberechtigungen

Nach der Möglichkeit, Ihr eigenes Endbenutzer-Verwaltungssystem und den Befehl SET USER ALIAS zu verwenden, haben wir nun die Möglichkeit hinzugefügt, Endbenutzerberechtigungen zu verwalten. Mit dem neuen Befehl SET GROUP ACCESS können Sie dynamisch Gruppenmitgliedschaften festlegen. Lesen Sie die Dokumentation

Benutzer-Aliase im Journal speichern

Das Verhalten des Befehls SET USER ALIAS wurde in 4D v19 erweitert, damit Sie wissen, wer was getan hat. Wenn ein Alias gesetzt wird, wird er jetzt auch im Journal gespeichert. So können Sie den richtigen Benutzer abrufen, auch wenn mehrere Benutzer denselben Computer und/oder dasselbe Systemkonto nutzen. Der Name des Benutzers wird angezeigt in:

  • den Registerkarten Aktivitätsanalyse und Rollback des MSC
  • dem Dialog, der mit dem Befehl CHECK LOG FILE angezeigt wird
  • der JSON-Datei, die mit dem Befehl LOG FILE TO JSON erzeugt wird Lesen Sie die Dokumentation

Langsame Vorgänge überwachen

Um herauszufinden, welche Operationen einen Server verlangsamen, können Sie den neuen Befehl START MONITORING ACTIVITY verwenden. Er zeichnet Operationen, die eine bestimmte Dauer überschreiten, im Speicher auf.

Basierend auf den durch diesen Befehl festgelegten Spezifikationen können Sie auch alle aufgezeichneten Aktivitäten mit dem Befehl Get Monitored Activity() abrufen. Wenn Sie die Aufzeichnung der Aktivitäten Ihrer 4D Anwendung beenden oder die Aktivitätsliste leeren möchten, rufen Sie den Befehl STOP MONITORING ACTIVITY auf. Lesen Sie die Dokumentation

Listbox

Verwalten von Klicks in bearbeiteten Zellen

Das Formularereignis on clicked

wird ausgelöst, unabhängig davon, ob eine Zelle bearbeitet wird oder nicht, was Ihnen mehr Kontrolle gibt und die Schnittstelle verbessert. Dies kann nützlich sein, wenn Sie die möglichen Werte für eine Zelle anzeigen möchten, während sie bearbeitet wird, z. B. über ein Kontextmenü. Sobald die Zeile ausgewählt ist, können Sie eine Farbauswahl für diese bestimmte Zeile oder Zelle anbieten.

Wenn Sie bereits über Code verfügen, der während des Ereignisses „On Clicked“ ausgeführt wird, können Sie aus Kompatibilitätsgründen die Ausführung dieses Codes stoppen, wenn ein Klick in eine bearbeitete Zelle erfolgt. Testen Sie in diesem Fall einfach vorher den Zustand der Zelle mit der Funktion is editing text. Lesen Sie die Dokumentation

Zeitspalten und Fußzeilenberechnungen blank

Während die neuen Listenfelder, die Sammlungen oder Entitätsauswahlen verwenden, mehr Möglichkeiten bieten, erlaubten sie im Gegensatz zu Listenfeldern, die Arrays oder Datensätze anzeigen, keine Zeitanzeige und automatische Berechnungen in der Fußzeile.

Jetzt können alle Arten von Listboxen die Zeit in ihren Spalten und Berechnungen in der Fußzeile anzeigen. Lesen Sie die Dokumentation

Verbesserter Typ voraus

Normalerweise kann ein Listenfeld nur Tastatureingaben im Bearbeitungsmodus empfangen. Dies verhinderte die automatische Filterung der Liste oder die Auswahl von Einträgen, wenn ein Benutzer die Tastatur oder nicht eingabefähige Listenfelder benutzte.

Jetzt wird das Ereignis Ein vor Tastendruck erzeugt, sobald das Listenfeld den Fokus hat und eine Taste eingegeben wird, auch wenn keine Daten in eine Zelle eingegeben werden. Dadurch weiß 4D, welche Tasten gedrückt wurden, und kann (durch Programmierung) Entscheidungen treffen, wie z. B. eine neue Suche zu starten oder die aktuelle Auswahl zu ändern.

Der neue Befehl Wird Text bearbeitet wurde hinzugefügt, um festzustellen, ob eine laufende Eingabe vorliegt, wenn das Ereignis Ein vor Tastendruck erzeugt wird. So kann z. B. ein Listenfeld bearbeitet werden – und unterstützt weiterhin die Funktionen zur Vorausschreibung. Die Ereignisse „Ein vor Tastendruck “ und „Ein nach Tastendruck“ unterstützen jetzt Systemhilfedialoge zur Auswahl von diakritischen Zeichen wie é, ä oder asiatischen Zeichen. Das Ereignis wird verzögert, bis der Endbenutzer die letzten Zeichen auswählt. Sie müssen dies nicht mehr selbst erledigen. Lesen Sie die Dokumentation

Pro Listbox-Funktionen zum Nulltarif

Sie benötigen keine 4D View Pro Lizenz mehr, um diese erweiterten Funktionen zu nutzen. Sie können die Vorteile von Listboxen voll ausschöpfen, um:

  • die Höhe jeder Zeile automatisch an den Inhalt anzupassen, so dass der gesamte Text oder das gesamte Bild angezeigt wird
  • Objekt-Arrays in Spalten zu verwenden, um die Eingabe und Anzeige verschiedener Arten von Werten in den Zeilen einer einzelnen Listbox-Spalte zu ermöglichen.

Verschiebbare Zeilen per Code einrichten

Im Entwurfsmodus können Sie bei der Verwendung von Array-basierten Listenfeldern festlegen, ob Endbenutzer Zeilen verschieben können(z. B. um Zeilen neu zu ordnen oder zu gruppieren usw.). Die Befehle LISTBOX SET PROPERTY und LISTBOX Get Property wurden aktualisiert und unterstützen nun die neue Eigenschaft lk movable rows. Lesen Sie die Dokumentation

Listbox-Zeilen auswählen

Der neue Befehl LISTBOX SELECT ROWS erleichtert die Auswahl von Zeilen in einer Entitätsauswahl. Er nimmt eine Entity-Auswahl als Parameter an und Zeilen, die der Entity-Auswahl entsprechen, können intuitiv ausgewählt werden (einschließlich Zeilen, die der Auswahl hinzugefügt oder aus ihr entfernt wurden). Bei Listenfeldern für Sammlungen können Sie eine Sammlung übergeben, die die Objektreferenzen enthält, die Sie auswählen möchten. Lesen Sie die Dokumentation

Übernehmen Sie die Kontrolle über den Arbeitsbereich

Grafische Systemelemente wie das macOS-Dock oder die Windows-Taskleiste werden berücksichtigt, damit Sie den gesamten verfügbaren Arbeitsbereich nutzen können. Der Befehl SCREEN COORDINATES wurde um einen neuen optionalen Parameter ergänzt: Bildschirmarbeitsbereich. Auf diese Weise können Sie sicher sein, dass die Fenster Ihrer Anwendung in einem sichtbaren Bereich liegen (insbesondere im SDI-Modus unter Windows). Lesen Sie die Dokumentation

XML: Verbesserte XPath-Unterstützung

Ab 4D v19 ist die XPath-Implementierung kompatibler und vereinfacht Ihre Suche durch die Unterstützung von Ausdrücken wie //, @, * und last(). Aus Kompatibilitätsgründen wird die vorherige, nicht standardisierte Implementierung in konvertierten Datenbanken standardmäßig beibehalten. Um die Vorteile der erweiterten Funktionen in Ihren konvertierten Datenbanken zu nutzen, wählen Sie die Option Standard-XPath-Kompatibilität verwenden auf der Seite Kompatibilität. Lesen Sie die Dokumentation

Objekt- und Auflistungserweiterung

Der Befehl OB Copy() und die Methode collection.copy() wurden verbessert. Sie bieten nun die Möglichkeit, ein Standardobjekt in ein gemeinsames Objekt oder eine Sammlung einzufügen, was das Kopieren des Inhalts dieses Standardobjekts in das gemeinsame Objekt oder die Sammlung vereinfacht. Darüber hinaus sind jetzt neue Befehle für die Handhabung von Objekten als Hash-Maps verfügbar:

  • OB Keys: gibt die Eigenschaftsnamen eines Objekts als Sammlung zurück
  • OB Values: gibt die Eigenschaftswerte eines Objekts als Sammlung zurück
  • OB Entries: gibt eine Sammlung von Objekten mit Schlüsseleigenschaften (Eigenschaftsname) und Werten (Eigenschaftswert) zurück. Lesen Sie die Dokumentation

Einen Offscreen-Webbereich erstellen

In 4D v19 können Sie mit dem Befehl WA Run offscreen area einen Webbereich im Offscreen-Modus verwenden. Er erzeugt einen Webbereich im Speicher und nimmt als Parameter alle relevanten Informationen für den Webbereich entgegen, wie z.B.:

  • die zu ladende URL
  • den Namen des Bereichs
  • die Formel, die aufgerufen wird, wenn ein Ereignis durch den Webbereich ausgelöst wird

Um das Debuggen von Offscreen-Webbereichen zu vereinfachen, wurde der neue Befehl WA OPEN WEB INSPECTOR hinzugefügt. Er öffnet den Web-Inspektor und ermöglicht es Ihnen zu überprüfen, ob die Seite korrekt geladen ist oder ob Ihr JavaScript-Code Fehler auslöst. Lesen Sie die Dokumentation

Zugriff auf Formularobjektwerte durch Programmierung

Es gibt zwei neue Befehle, mit denen Sie auf die Werte von Formularobjekten zugreifen können, unabhängig von ihrer Variable oder ihrem Ausdruck: OBJECT Get value und OBJECT SET VALUE.

  • Um den Wert eines Formularobjekts zu ermitteln, verwenden Sie den Befehl OBJECT Get value und übergeben den Namen Ihres Formularobjekts als Parameter.
  • Um den Wert eines Formularobjekts zu setzen, verwenden Sie den Befehl OBJECT SET VALUE und übergeben Sie den Namen und den neuen Wert als Parameter. Lesen Sie die Dokumentation

Verbesserungen beim String-Vergleich

4D bietet vielseitige Werkzeuge zum Suchen und Vergleichen von Zeichenketten. Sie können an verschiedene Kontexte und Situationen angepasst werden.

Mit 4D v19 wurde der Befehl Position aktualisiert und der neue Befehl Zeichenketten vergleichen hinzugefügt:

  • Position: Dieser Befehl verfügt jetzt über mehr Vergleichsmöglichkeiten wie „Groß-/Kleinschreibung“ oder „Akzent“, und die folgenden Suchoptionen sind jetzt verfügbar:
    • Japanische Sprache (Hiragana/Katagana)
    • Zeichenbreite
    • „Ganzes Wort“
  • Zeichenketten vergleichen: Mit diesem neuen Befehl können Sie Zeichenketten mit denselben Optionen vergleichen, die auch im Befehl Position enthalten sind. Dieser Befehl basiert auf der in den Datenbankeinstellungen definierten Sprache. Dies kann nützlich sein, um zum Beispiel bestimmte Sortierungen zu ermöglichen. Lesen Sie die Dokumentation

Erweiterungen des 4D Debuggers

4D v19 enthält neue Optionen und zusätzliche Informationen, die das Aufspüren und Analysieren Ihres Codes erleichtern.

    • Parameter: Die Kenntnis der Eingabe- und Ausgabeparameter einer Methode oder Funktion sowie ihres Typs ist für die Fehlersuche im Code unerlässlich. Die Deklarationszeile wird oben links im Debugger-Fenster angezeigt. Im Aufrufkettenfenster können Sie wählen, ob Sie den Typ des Parameters anzeigen oder ausblenden möchten.
    • Kommentare: Um eine Methode oder Funktion zu erläutern, ist es üblich, am Anfang von Codeblöcken Kommentare einzufügen. Diese Kommentare sind nun auch im Debugger sichtbar. Lesen Sie die Dokumentation

Entfernter Debugger

Mit dieser Funktion können Sie entscheiden, wo Sie Ihren Servercode debuggen möchten (auf der Client-Seite oder auf der Server-Seite). Client-seitiges Debugging ist besonders nützlich, wenn Sie Ihren Server im Headless-Modus oder als Windows-Dienst betreiben.

Zwei neue Menüpunkte wurden auf beiden Seiten hinzugefügt, um die Debugger-Anbindung zu verwalten:

  • Debugger anhängen / abhängen: Sie können den Debugger sofort an Ihren Client oder Server anhängen oder abnehmen.
  • Debugger beim Starten anhängen: Hängen Sie den Debugger an, wenn Sie Ihren Client oder Server starten.

Beachten Sie, dass der Debugger immer nur an eine Instanz von 4D angehängt werden kann. Wenn Sie zum Beispiel versuchen, den Debugger an Ihren Server anzuhängen, ohne ihn vom Client zu trennen, erhalten Sie eine Fehlermeldung mit Informationen über den Besitzer des Debuggers.

Um Ihnen die Unterscheidung zu erleichtern, ob der Debugger oder die Fehlerfenster vom Server oder vom Client stammen, haben wir das Aussehen dieser Fenster geändert. Lesen Sie die Dokumentation

4D Write Pro

Konvertieren Sie Ihre Word Dokumente in das 4D Write Pro Format blank

Sie können jetzt .docx-Dokumente in 4D Write Pro importieren. Verwenden Sie dazu die neue Konstante wk docx mit dem bestehenden Befehl WP Import document. Bitte beachten Sie, dass 4D Write Pro den größten Teil des Inhalts des MS Word Dokuments importiert, mit Ausnahme dessen, was in 4D Write Pro nicht unterstützt wird (wie im Kapitel Dokumentation beschrieben): Importieren und Exportieren im .docx-Format). Außerdem wird während des Importvorgangs ein Importprotokoll erstellt und in das 4D Write Pro Dokument selbst integriert. Sie können es einsehen, um eventuelle Unterschiede zwischen dem Original und dem konvertierten Dokument festzustellen. Lesen Sie die Dokumentation

Direkter Export nach PDF

Ohne Installation von Druckertreibern oder zusätzlicher Software können 4D Write Pro Dokumente direkt in das PDF-Format exportiert werden. Ein direkter Export ist nicht nur schneller und zuverlässiger als ein Druckertreiber, sondern gibt Ihnen auch mehr Kontrolle über das Ergebnis. Er unterstützt Hyperlinks, ermöglicht die Optimierung der Bildgröße und vieles mehr. Der Befehl WP EXPORT DOCUMENT wurde aktualisiert und akzeptiert nun eine neue Konstante: wk pdf. Lesen Sie die Dokumentation

Suchen und Ersetzen blank

Das Suchen und Ersetzen von Text in einem 4D Write Pro Dokument ist bereits mit grundlegenden Befehlen wie WP Get text und WP Set text möglich. Der neue Befehl WP Find all macht diesen Prozess schneller als je zuvor. Lesen Sie die Dokumentation

Alle Umbrüche auffinden blank

4D Write Pro Dokumente unterstützen fünf Arten von Umbrüchen:

  • Zeilenumbrüche
  • Absatzumbrüche
  • Seitenumbrüche
  • Abschnittsumbrüche
  • Spaltenumbrüche

Manchmal muss man einen bestimmten Umbruchtyp ausfindig machen, um ihn durch einen anderen zu ersetzen, oder einfach alle seine Vorkommen im Dokument löschen. Um dies zu ermöglichen, haben wir eine neue Funktion entwickelt: WP Get breaks. Lesen Sie die Dokumentation

Formeln: Wagenrücklaufverhalten verwalten

Die neue Dokumenteigenschaft wk break paragraphs in Formeln definiert, wie ein Zeilenumbruch behandelt werden soll. Sie hat zwei mögliche Werte:

  • wk true: Wird als Absatzumbruch interpretiert.
  • wk false: (Standardwert) Wird als Zeilenumbruch interpretiert. Lesen Sie die Dokumentation

UI-Verbesserungen

Es gibt eine neue Registerkarte im 4D Write Pro Interface Widget. Sie ermöglicht es Ihnen, Dokumente in verschiedenen Formaten zu importieren und zu exportieren. Wir haben auch die Symbolleiste und die Seitenleiste verbessert. Jetzt können Sie:

  • Text inkrementieren oder dekrementieren
  • das Lineal kopieren und einfügen
  • die Hintergrundfarbe eines Absatzes ändern
  • den Stil eines Wortes ändern (Großbuchstaben, Kleinbuchstaben, usw.). Lesen Sie die Dokumentation

Widgetseiten zur Anzeige auswählen

4D zeigt nur die in der Sammlung erwähnten Seiten an, und zwar in der Reihenfolge der Sammlung. Dadurch kann der Funktionsumfang reduziert werden, um es für den Endbenutzer einfacher zu machen. Wenn nur Stiloptionen benötigt werden, ist es besser, die anderen Funktionalitäten nicht anzuzeigen. Das 4D Write Pro Widget bietet jetzt die Möglichkeit, die anzuzeigenden Seiten mit der neuen Komponentenmethode WP ShowTabPages auszuwählen. Übergeben Sie einfach den Namen des Widgets und eine Sammlung von Seiten, die angezeigt werden sollen, wenn Sie die Methode aufrufen. Lesen Sie die Dokumentation

Zeichen für dezimale Tabs auswählen

Wenn Sie Dokumente aus verschiedenen Quellen haben, kann es vorkommen, dass die Zahlen für Ihre Bedürfnisse nicht richtig formatiert sind. Mit 4D Write Pro können Sie diese Einstellung jetzt für jedes Dokument festlegen. Sie können wählen, ob Sie die Zahlen entweder an:

  • dem Punkt
  • dem Komma
  • dem ersten gefundenen Trennzeichen (Punkt oder Komma)
  • dem im Betriebssystem definierten Trennzeichen

Um die Kompatibilität (insbesondere mit MS Word) zu maximieren, wird bei der Erstellung neuer Dokumente standardmäßig Option 3 verwendet. Bei der Migration von 4D Write Dokumenten nach 4D Write Pro wird standardmäßig das vom System definierte Trennzeichen verwendet. Lesen Sie die Dokumentation

Verwalten von weichen Trennstrichen

Das Einfügen von Bindestrichen wurde durch neue Standardaktionen und neue Schaltflächen in den Widgets der 4D Write Pro Oberfläche vereinfacht.

Es sind zwei neue Standardaktionen verfügbar:

  • insertSoftHyphen
  • removeSoftHyphens

Die Funktionalität wurde auch den 4D Write Pro Interface Widgets hinzugefügt, sowohl dem Toolbar Widget als auch dem Sidebar Widget. Lesen Sie die Dokumentation

Neue Standardaktionen für Tabellen und ihre Elemente

4D v19 erweitert 4D Write Pro um neue Standardaktionen für Tabellen, Zeilen und Zellen. Sie ermöglichen es Ihnen, den Rahmentyp einer Tabelle, die Hintergrundfarbe einer Zelle, die vertikale Ausrichtung des Textes in einer Zeile, die Ausrichtung der Tabelle selbst innerhalb des Dokuments, die Ränder, die Auffüllung und 40 weitere Optionen zu definieren. Folglich wurde die Benutzeroberfläche von 4D Write Pro im Hinblick auf die Möglichkeiten der Tabellenverarbeitung verbessert. Vier neue Schaltflächen wurden hinzugefügt, um das Aussehen von Tabellen, Zeilen, Spalten und Zellen zu verändern. Lesen Sie die Dokumentation

Unterstützung von geschützten Attributen

In 4D v19 können bestimmte Teile von 4D Write Pro Dokumenten (oder alle Teile) „nicht editierbar“ sein. Es stehen zwei Schutzstufen zur Verfügung. Legen Sie zunächst fest, welcher Teil des Dokuments geschützt werden soll (standardmäßig sind alle Teile geschützt). Aktivieren Sie dann das Dokumentschutzkennzeichen, damit die von Ihnen vorgenommenen Einstellungen berücksichtigt werden. Hierfür können Sie zwei neue Attribute mit dem Befehl WP SET ATTRIBUTES verwenden:

  • wk protected (kann auf fast jede Art von Ziel gesetzt werden, das zu einem Dokument gehört)
  • wk-Schutz aktiviert (aktiviert oder deaktiviert den globalen Dokumentschutz). Lesen Sie die Dokumentation

Verwalten von Formeln in Dokumenten

4D v19 enthält eine Reihe von Befehlen, mit denen Sie Formeln in Ihren 4D Write Pro Dokumenten verwalten können:

  • WP Formeln abrufen: Ruft alle Formeln innerhalb eines bestimmten Ziels ab (das gesamte Dokument selbst, aber auch spezifischere Teile eines Dokuments wie den Textkörper, den zweiten Abschnitt, die linke Kopfzeile usw.),
  • WP Formel einfügen: Fügt einen Ausdruck als Formelobjekt in einen beliebigen Bereich ein,
  • WP Formeln berechnen und WP Formeln einfrieren: Können auf sehr ähnliche Weise verwendet werden(d. h. unter Verwendung eines Ziels). Bewerten Sie alle Ausdrücke eines Dokuments neu oder frieren Sie einfach nur die Ausdrücke in den Fußzeilen ein. Lesen Sie die Dokumentation

Bilder löschen

Das Löschen von Inline-Bildern oder verankerten Bildern kann jetzt mit dem neuen Befehl WP DELETE PICTURE durchgeführt werden. Suchen Sie einfach das zu löschende Bild anhand seiner ID (mit WP Get element by ID) oder anhand seiner Position (mit WP Get elements) und rufen Sie dann den Befehl auf. Lesen Sie die Dokumentation

4D Ansicht Pro

Erweiterungen mit SpreadJS v14 blank

4D v19 kommt mit einem neuen 4D View Pro Ribbon. Neben dem neuen Aussehen haben wir neue Funktionen hinzugefügt, um die neuen Funktionalitäten von SpreadJS v14 zu unterstützen.

Diese neue Symbolleiste bringt neue Funktionalitäten wie z.B.:

  • Unterstützung der Barrierefreiheit: Bietet angemessene Unterstützung für Benutzer mit Behinderungen, die unterstützende Technologien wie Bildschirmleser verwenden. Weitere Informationen finden Sie unter Unterstützung der Barrierefreiheit
  • Anpassen des Kommentarindikators: Benutzer können jetzt die Farbe und Größe des Indikators ändern.
  • Bilder aus Excel kopieren: Das Kopieren von Bildern aus Excel und das Einfügen in Blätter wird unterstützt. Das eingefügte Bild hat die gleiche Größe, den gleichen Rahmen und den gleichen Hintergrund wie in Excel.
  • Fülleffekte und Muster: Verbessern Sie das Erscheinungsbild von Zellen in einer Kalkulationstabelle, indem Sie Muster- oder Verlaufseffekte auf die Zellen anwenden. Weitere Informationen finden Sie unter Musterfüllung und Farbverlaufsfüllung.

Unterstützung von sechs Sprachen

Neben Englisch werden jetzt auch Französisch, Deutsch, Spanisch, Japanisch und Portugiesisch unterstützt! Wenn Sie 4D v19 und höher mit einem Betriebssystem verwenden, das den unterstützten Sprachen entspricht, werden Sie feststellen, dass alle Elemente von 4D View Pro jetzt übersetzt sind (Multifunktionsleiste, Symbolleiste, Kontextmenü, Fehlermeldungen usw.).

Ende des Dokumentladens

Es gibt zwei neue Ereignisse, mit denen Sie feststellen können, wann Ihre Berechnungen abgeschlossen sind: Bei VP-Bereichswechsel und bei Timer-Ereignis.

Dies kann z. B. nützlich sein, wenn Sie ein großes 4D View Pro Dokument mit vielen Formeln laden und die Berechnungen einige Zeit in Anspruch nehmen, oder wenn Sie einen Offscreen-Bereich verwenden und das Dokument in das PDF- oder Excel-Format exportieren möchten. In solchen Fällen müssen Sie warten, bis die Berechnungen abgeschlossen sind, bevor Sie fortfahren. Lesen Sie die Dokumentation

Suchen und Ersetzen

Es kommt vor, dass Sie ein 4D View Pro Dokument initialisieren und einige Werte oder Tags suchen und durch von 4D ausgegebene Daten ersetzen müssen. Mit dem VP Find-Befehl ist das jetzt ein Kinderspiel. Mit diesem Befehl können Sie Daten, Formeln oder Tags suchen und sie im gesamten Blatt oder nur in einem bestimmten Teil davon ersetzen. Lesen Sie die Dokumentation

4D Formeln in Tabellenkalkulationen

Mit dem Befehl VP SET CUSTOM FUNCTIONS können Sie in 4D View Pro benutzerdefinierte Funktionen erstellen, um eine 4D Formel auszuführen. Es ist nicht notwendig, eine Methode zu erstellen, um eine einfache Variable in 4D View Pro zu verwenden, sondern sie einfach als Parameter an Ihre Formel zu übergeben. Darüber hinaus vereinfacht der Befehl die Eingabe für den Endanwender, indem er Hilfetext und Parameternamen bereitstellt. In großen Strukturen ist die Verwendung dieses Befehls viel schneller als die Verwendung des allgemeinen Befehls SET FIELD TITLES. Lesen Sie die Dokumentation

Offscreen-Bereich

Der neue Befehl VP Run offscreen area ermöglicht es Ihnen, 4D View Pro Befehle und Funktionen in einem Offscreen-Bereich zu bearbeiten. Um ihn zu verwenden, übergeben Sie einfach die Informationen des Bereichs als Parameter (z.B. den Bereichsnamen und die Methode, die aufgerufen wird, wenn ein Ereignis vom 4D View Pro Bereich ausgelöst wird). Lesen Sie die Dokumentation

Zusammenführen und Aufheben des Zusammenführens von Zellen

Es stehen Ihnen neue Befehle zur Verfügung, mit denen Sie eine Gruppe von Zellen programmgesteuert zusammenführen und wieder trennen können:

  • Um eine zusammengefasste Zelle zu erstellen, definieren Sie einen Bereich mit allen Zellen, die Sie zusammenfassen möchten, und übergeben Sie diesen als Parameter an den neuen Befehl VP ADD SPAN, der die Zellen zu einem einzigen Bereich zusammenfasst.
  • Um alle zusammengefassten Zellen abzurufen, verwenden Sie den Befehl VP Get spans.
  • Um die zusammengefassten Zellen in Ihrem Dokument zu entfernen, verwenden Sie den Befehl VP REMOVE SPAN. Lesen Sie die Dokumentation

Formeln: Neuberechnen, Anhalten und Fortsetzen

Drei neue Befehle ermöglichen es Ihnen, die Berechnungen der Formeln auszulösen, wann immer Sie wollen:

  • Verwenden Sie VP RECOMPUTE FORMULAS, um die Formeln neu zu berechnen, wenn sich die Daten ändern.
  • Verwenden Sie VP SUSPEND COMPUTING und VP RESUME COMPUTING , um Berechnungen auszusetzen bzw. fortzusetzen. Lesen Sie die Dokumentation

Mehr Optionen zum Anpassen von Arbeitsblättern

Mit dem neuen Befehl VP SET SHEET OPTIONS können Sie verschiedene Blattoptionen für einen 4D View Pro Bereich festlegen. Mit diesem Befehl können Sie zum Beispiel:

  • ein Arbeitsblatt schützen, indem Sie verhindern, dass die Zellen darin bearbeitet werden
  • die Farben der Tabulatoren, der eingefrorenen Linien, der Gitternetzlinien, des Hintergrunds und des Rahmens einer Auswahl auf dem Arbeitsblatt anpassen
  • die Sichtbarkeit der Gitternetzlinien und Zeilen-/Spaltenüberschriften eines Arbeitsblatts verwalten. Lesen Sie die Dokumentation

Verwalten von Zeilen und Spalten

4D v19 enthält neue Befehle zur Verwaltung von Spalten und Zeilen. Mit diesen Befehlen können Sie Ihre Dokumente besser an Ihre Bedürfnisse anpassen. Mit den folgenden Befehlen können Sie Spalten und Zeilen hinzufügen und entfernen oder ihre Größe, Sichtbarkeit und Kopfbeschriftung festlegen:

  • VP INSERT ROWS oder VP INSERT COLUMNS: Fügen Sie Zeilen oder Spalten hinzu, indem Sie einen Bereich übergeben, der die erste Spalte oder Zeile als Parameter und die Anzahl der hinzuzufügenden Zeilen oder Spalten enthält.
  • VP SET COLUMN COUNT und VP SET ROW COUNT: Definieren Sie die Anzahl der angezeigten Spalten und Zeilen. Standardmäßig enthält ein 4D View Pro Blatt 100 Spalten und 1.000 Zeilen.
  • VP DELETE ROWS oder VP DELETE COLUMNS: Entfernen Sie bestimmte Zeilen oder Spalten.
  • VP SET COLUMN ATTRIBUTES und VP SET ROW ATTRIBUTES: Festlegen der Spaltenbreite oder Zeilenhöhe; Hinzufügen eines Seitenumbruchs für den Druck; Ein- oder Ausblenden von Spalten oder Zeilen; Aktivieren oder Unterbinden der Größenänderung von Spalten oder Zeilen durch Benutzer; Ändern von Spalten- oder Zeilenkopfbeschriftungen. Lesen Sie die Dokumentation

Zeilen und/oder Spalten sperren

Der neue VP-Befehl SET FROZEN PANES hilft Ihnen bei der Erstellung von Panes. Wenn Sie eine große Tabelle mit Daten haben, kann es nützlich sein, einen Bereich eines Arbeitsblatts sichtbar zu halten, während Sie zu einem anderen Bereich blättern. Mit diesem Befehl können Sie bis zu 4 Fenster in Ihrem Bereich erstellen: eines links, eines oben, eines rechts und eines unten. Lesen Sie die Dokumentation

R-releases im Detail