Was ist neu in 4D v19

Dieses Dokument ist eine Zusammenfassung der neuen Features in 4D v19. Zu jedem Feature gibt es ein weiterführendes Blog Post mit konkreten Beispielen. Um es aufzurufen, klicken Sie auf die Untertitel in den einzelnen Themenbereichen. Über die Links “Dokumentation lesen” am Ende von Absätzen gelangen Sie zu ausführlichen Beschreibungen in der 4D Dokumentation.

Neue Features, die zwischen 4D v18 R6 und 4D v19 veröffentlicht wurden, sind mit dem Tag blank gekennzeichnet.

Das Dokument ist in sieben Abschnitte gegliedert:

Native Silicon Support

In Folge von Apple’s Ankündigung (die neuen Silicon Macs) haben wir 4D v19 sechs Monate früher als geplant veröffentlicht. Damit können Sie schneller eine Silicon Native Version von 4D erhalten. Sie bietet deutliche Verbesserungen der Performance. und außerdem folgende Neuerungen:

 

Da Silicon Macs keine Architektur mehr verwenden, die auf x86 Prozessoren wie Intel Macs und PCs basieren, können sie nicht den gleichen kompilierten Code ausführen. Deshalb haben wir unseren Compiler mit einer spezifischen Silicon Compilation erweitert (nur im Projektmodus verfügbar). Sie können Ihre Anwendungen für Intel Architekturen (Windows und Intel Mac), Silicon Architektur (Silicon Mac) oder beide Architekturen kompilieren.

Plug-Ins 

Das wirkt sich auch auf Plug-Ins aus. Damit ein Plug-In auf Intel und Silicon Macs funktioniert, müssen Sie es als universal binary kompilieren. Achten Sie bei third-party Plug-Ins darauf, dass Sie die Silicon-native oder universal binary Version laden.

Mehr Zeit erforderlich? 

4D v19 arbeitet natürlich weiterhin mit Rosetta. Wenn Sie noch Zeit brauchen, um Ihre Anwendung auf native Arbeitsweise umzustellen, können Sie diese weiterhin in Rosetta ausführen.

 Weitere Features des Projektmodus

Die Projekt Architektur ist eine Evolution für 4D Anwendungen, die die 4D Welt zu Source Control Tools, Programmieren im Team, Code-Sharing, Modularität, u.v.m. öffnet. Mit dem Projektmodus, mit dem sich der Source Code einer Anwendung im Projektmodus über Source Control Tools gemeinsam nutzen lässt, haben wir über 45 Repositories in GitHub veröffentlicht (zum Zeitpunkt dieses Handbuchs). Dazu gehören HDIs, Komponenten und komplette Beispielanwendungen. 

4D v19 bietet ein ganz neues Set an Features, die das Programmieren für Sie entscheidend verbessern.

 

Klassen 

Wir haben das Konzept Klassen eingeführt. In einer Klasse definieren Sie das Verhalten eines Objekts über zugewiesene Eigenschaften und Funktionen. Ist eine Klasse definiert, können Sie Objekte dieser Klasse als Instanz überall in Ihrem Code verwenden. Jedes Objekt ist eine Instanz seiner Klasse. Eine Klasse kann andere Klassen erweitern und dann von deren Functions erben.

4D enthält zwei Arten von Klassen: vorgegebene 4D Klassen (zurückgegeben über den 4D Befehl) und Benutzerklassen (zurückgegeben über den cs Befehl).

Um ein Objekt als Instanz einer Klasse zu erstellen, verwenden Sie den cs Befehl mit der Member Function new. Ein anderer wichtiger Begriff ist der Constructor. Er dient dazu, ein Objekt mit Standardattributen zu erstellen und als Instanz zu verwenden. Er wird automatisch beim Initialisieren eines Objekts aufgerufen. Eine Klasse erstellen Sie über das Icon “Neu” in der Werkzeugleiste oder im “Explorer”. Dann erscheint der Klasseneditor, in dem Sie den Class Constructor und Functions anlegen können.
Dokumentation lesen

Vererbung 

Eine Klasse kann das Verhalten einer anderen Klasse erben (Eltern Klasse). Zum Vererben verwenden Sie das Schlüsselwort Class extends, der Constructor der Eltern Klasse wird automatisch aufgerufen (wenn Sie keinen spezifischen Constructor für die Kind Klasse definiert haben). Sie können diesen auch über den Befehl Super aufrufen.
Dokumentation lesen

Parameter für Methoden und Functions benennen 

Sie müssen keine zwischengeschaltete Variable verwenden, sondern können Ihre Parameter und Ergebnisse benennen, wenn Sie folgendes deklarieren:

  • Projektmethode
  • Trigger
  • Datenbankmethode
  • Formularmethode
  • Class Constructor
  • Class Function
    Dokumentation lesen

 

CSS Preview im Formulareditor

CSS Preview war das Feature Request mit den meisten Votes und es wurde in unserem Feature Request Forum am schnellsten zum Top Feature gewählt. Es ermöglicht eine Vorschau des endgültigen CSS Rendering im Formulareditor. Dafür gibt es in der Toolbar ein neues Icon, um Ihr Formular mit oder ohne  CSS Rendering anzuzeigen. Sie können sogar sehen, wie es auf Mac oder Windows aussehen würde. Wie beim Überschreiben einer Eigenschaft erscheint im CSS Modus im Formulareditor ein neues Erkennungszeichen (shield) – ähnlich wie die Erkennungszeichen für Objektmethode oder Eingabereihenfolge. So erkennen Sie leicht, welche Objekte von CSS betroffen sind.
Dokumentation lesen

 

Entwicklung von Server Code

Das Entwickeln und Debuggen von Server Code in Anwendungen im Projektmodus ist einfacher geworden. Beim Entwickeln im Team mit mehreren Mitgliedern, die im Einzelplatz entwickeln und ihre Änderungen in einem Version Control System übermitteln, ist der Befehl RELOAD PROJECT zusammen mit Befehlen wie git pull hilfreich. Denn damit lässt sich ein laufender Server mit neuem Code aktualisieren ohne Neustart im Produktionsmodus oder für Testzwecke.

Meldet sich ein 4D Developer Client an einen 4D Server auf demselben Rechner an, wird die.4DZ Datei nicht vom Server auf den Client übertragen. 4D Remote verwaltet die Projektdateien (Methoden, Formulare, Ressourcen, etc.) wie einen Client im 4D Einzelplatz. 4D Server und 4D Remote nutzen die Projektdateien gemeinsam. Auf diese Weise können Sie Ihren Code ändern und direkt testen.

Soll der Server die geänderten Dateien neu laden, wechseln Sie von der Entwicklungsumgebung in den Anwendungsmodus, setzen Sie den 4D Server in den Vordergrund oder wählen in 4D Remote den Menüeintrag “Datei/Ablage -> Alle sichern” (oder verwenden Sie den neuen Befehl RELOAD PROJECT).

Zur Erinnerung: Wird eine geänderte Methode auf dem Client ausgeführt, führt dies automatisch die Aktion “Alle sichern” aus und lädt somit die geänderten Dateien auf dem Server erneut.
Dokumentation lesen

 

Makros 

Der Formulareditor enthält jetzt Makros. Damit können Sie:

  • Eine Eigenschaft in einem oder mehreren Objekten ändern, löschen oder hinzufügen, z.B. Farbe oder Breite eines Button ändern
  • Eine oder mehrere Formularobjekte hinzufügen oder löschen (inkl. der jeweils zugeordneten Methode)
  • Formularobjekte im Editor aus- bzw. abwählen
  • Modalen Dialog zum Eingeben eines Parameters im laufenden Betrieb anzeigen
  • Die ideale Position der Formularobjekte berechnen und diese entsprechend versetzen
  • Eine CSS Klasse aus einem Formularobjekt zur Verwendung als Vorlage erstellen
  • Prüfen, ob Bildpfade im Formular gültig sind
  • CSS Dateien in Ihrem CSS Editor öffnen, anstatt die Dateien auf der Festplatte zu suchen
  • Prüfen, ob XLIFF Referenzen ihre Entsprechung in den XLIFF Dateien haben
  • u.v.m.

Formularmakros sind im Kontextmenü sichtbar. Makros von Host Datenbanken erscheinen zuerst, gefolgt von Makros von Komponenten. Zum Ausführen eines Makros klicken Sie einfach auf den Menüeintrag. Und für die Reihenfolge werden Makros in einer Datei formMacros.json auf der ersten Ebene des Ordners Sources in Ihrem Projekt deklariert. Sehen Sie sich ein paar der Makro- Beispiele an, die wir auf GitHub zur Verfügung stellen. Zum Testen können sie diese einfach als Komponenten in Ihre Anwendungen integrieren. 
Dokumentation lesen

 

Eigene Dokumentation zu Methoden

Sie können Ihre eigene Dokumentation für eine Projektmethode, Datenbankmethode, Triggermethode bzw. Projekt- und Tabellenformularmethode schreiben. Sie wird in einer Markdown Datei in einem Ordner Dokumentation mit demselben Namen gesichert wie die Methode oder das Formular. Markdown ist das Standardformat mit verbesserten Formatierungen, das sich in 4D Explorer, GitHub oder anderen Tools anzeigen lässt. Die Dokumentation kann ein Element näher beschreiben und erläutern, wie das Element in der Anwendung funktioniert. Um die Datei Dokumentation in einer Projekt Anwendung anzulegen oder zu bearbeiten, klicken Sie im 4D Explorer auf die Schaltfläche “Erstellen” oder wählen den Menüeintrag “Dokumentation bearbeiten”. 4D erstellt die entsprechende Datei und öffnet sie in Ihrem Standardeditor mit einer vordefinierten Vorlage.
Dokumentation lesen

4D bietet drei automatische Gruppen, die sich nach den Leitlinien jeder Plattform richten. In 4D v19 können Sie die Vorgaben dieser automatischen Gruppen überschreiben und bei Bedarf selbst steuern, in welcher Größe Text in Dialogen, Formularen, etc. erscheint.
Dokumentation lesen

 

4D for iOS 

 

Die Funktionspalette für 4D for iOS wurde mit 4D v19 weiter ausgebaut:

 

Offline arbeiten blank

Sie können offline arbeiten und auf ganz flexible Art mit Ihrem 4D Server interagieren.

Ist kein Netzwerk verfügbar, werden Ihre Tasks in eine Warteschleife gesetzt, bis der Server verfügbar ist. Das garantiert völlig reibungsloses und effizientes Arbeiten mit Apps, die konstant ohne Verzögerungen funktionieren.
Dokumentation lesen

 

Deep Linking

Mit Deep Linking lässt sich eine URL teilen, beispielsweise in einer E-Mail. Ein Klick auf die URL öffnet direkt einen spezifischen Datensatz in einer 4D for iOS App. In Kombination mit Push Notification können Sie einen Vertriebsmitarbeiter über ein neues Angebot informieren, einen Versicherungsvertreter über einen neuen Versicherungsfall. Durch einfachen Klick öffnet sich direkt die Anwendung und zeigt den passenden Datensatz in der App an.
Dokumentation lesen

 

Push Notifications 

Push notifications machen die Benutzer Ihrer iOS App auf wichtige Informationen aufmerksam, damit sie auf dem Laufenden bleiben.

Über Push Notifications lösen Sie die Synchronisierung auf iOS Geräten aus, d.h. die Benutzeroberfläche wird aktualisiert. Benutzer erhalten Daten in Echtzeit, die sie bei Erhalt der Notification checken können.
Dokumentation lesen

 

Neue Parameterformate: Signatur und Barcode

Zwei neue Parameterformate in 4D for iOS machen Ihre Apps interaktiver:

  • Format Signatur: Unterschrift per Fingertipp und direkt aus Ihrer App an den Server senden. Das ist z.B. hilfreich, um die Zustellung eines Pakets durch Unterschrift des Kunden zu bestätigen und an die Zentrale zu senden.
  • Format Barcode: Einen Wert mit einem Barcode (EAN13, EAN8, QR Code, etc.) ausstatten, der sich dann einfach durch Scannen aus einem Action Formular auslesen lässt. Das ist eine gängige Methode, um beispielsweise die Referenz eines Eintrags durch Scannen des QR Code direkt aus Ihrer App hinzuzufügen.
    Dokumentation lesen

 

Sie können im Strukturbereich über Viele-zu-Eine Verknüpfungen auf Eine-zu-Viele Verknüpfungen zugreifen und sie veröffentlichen. Kurz gesagt, Sie können Viele-zu-Viele Verknüpfungen anzeigen und iOS Apps mit besserer Ergonomie als je zuvor ausliefern. Außerdem können Sie eine Verknüpfung auf ein Feld ziehen, auf diese Weise Interaktionen zuweisen und durch Anklicken der Eine-zu-Viele Verknüpfungen die dazugehörige Datensatznummer anzeigen.
Dokumentation lesen

 

Unterstützung des Barcode Scan

Das Hinzufügen des Barcode Scan verbessert Suchvorgänge signifikant. Dadurch lassen sich Apps erzeugen, die an bestimmte Situationen angepasst sind, wie z.B. den Lagerbestand in Supermärkten zu ermitteln.

Aus technischer Sicht ist jetzt folgendes möglich:

  • Listenformulare lassen sich abhängig vom Code-Wert filtern. Passt ein Datensatz zum Barcode, öffnet sich direkt das Detailformular zu diesem Datensatz.
  • In Kombination mit Deep Linking lassen sich spezifische Listen- und Detailformulare einfach durch Einscannen des Barcode anzeigen, dessen Werte URL Schemas oder Universal Links sind.
    Dokumentation lesen

 

Per QR-Code einloggen blank

4D for iOS bietet über die Formvorlage SignInWithQRCode eine hochmoderne Art zum Einloggen. App User können sich durch Scannen des QR-Code einloggen, bereits authentifizierte User erhalten sofort Zugriff auf die App.
Dokumentation lesen

 

Optimierte Datensynchronisation 

Der Prozess zur Synchronisierung der Daten für 4D for iOS wurde optimiert und läuft jetzt 25 mal schneller ab.
Dokumentation lesen

 

Authentifizierung der E-Mail 

In 4D for iOS können Sie leicht die Authentizität und Legitimität der Person feststellen, die sich in Ihre App einloggen will, indem Sie überprüfen, ob die E-Mail tatsächlich von dem stammt, der sich als vermeintlicher Absender ausgibt. Der Prozess setzt den Sitzungsstatus des Benutzers erst in Wartestellung und schaltet dann den Zugriff auf die Anwendung frei:

  • Gibt ein Benutzer seine E-Mail Adresse im Login-Formular ein und klickt auf die Schaltfläche Login, wird sein Sitzungsstatus auf “pending” gesetzt.
  • Dann wird ein E-Mail zur Bestätigung an den Benutzer gesendet, der auf den Link zum Bestätigen klicken muss, damit der Status von “pending” auf “accepted” gesetzt wird.
  • Ist die Bestätigung abgeschlossen, kann der Benutzer die App erneut öffnen, da seine Sitzung freigegeben ist und der Zugriff auf die App gewährt wurde.

Die Methode, die diesen Vorgang automatisch steuert, steht auch zu Ihrer Verfügung, so dass Sie die Authentifizierung an Ihre eigenen Bedürfnisse anpassen können.
Dokumentation lesen

 

Templates für Detailformular einrichten

Sie können beliebig viele Felder in das Template für Detailformular setzen, denn es lässt sich scrollen. Zum Hinzufügen der Felder gibt es mehrere Möglichkeiten:

  • Sie wählen ein leeres Template, in das Sie alle gewünschten Felder ohne Einschränkung ziehen können
  • Sie setzen die Felder per Drag-and-Drop an eine beliebige Stelle oder zwischen bereits vorhandene Felder in die Ansicht, um sie gleich nach dem zuletzt hinzugefügten Feld anzuzeigen
  • Sie doppelklicken auf ein Feld. Es wird am Ende der Liste angefügt
  • Sie klicken in der Tabelle auf der linken Seite mit rechter Maustaste auf eins der verfügbaren Felder. Es erscheint ein Menü, so dass Sie die fehlenden Felder in Ihrem Detailformular ergänzen können.
    Dokumentation lesen

 

Ready to use Templates

Es gibt mehr als 40 einsatzbereite Templates, die über den Projekteditor verfügbar sind. Das Gesamtpaket ist eine dynamische Liste mit modernen Templates auf GitHub. Sie können Templates für Listen- und Detailformulare über die Schaltfläche “More” aufrufen. Sie zeigt die gesamte Liste der Templates aus dem Bereich Formulare an. Wählen Sie ein Template aus, und 4D for iOS erledigt die Installation für Sie. Sie können es dann an Ihre eigenen Bedürfnisse anpassen.
Dokumentation lesen

ORDA

4D v19 bringt weitere Verbesserungen in ORDA. Neben diversen Features (siehe unten) können Sie über das Datenmodell umfassende Funktionen für Klassen erstellen und so business-orientierten Code schreiben, der komplexe Vorgänge ausblendet, die Fehlerquote verringert und den Entwicklungsprozess beschleunigt. Zusätzlich können Sie Ihr Projekt mit einem REST Server einfach als API veröffentlichen.

ORDA Klassen zum Verwalten des Datenmodells 

Die ORDA Struktur (Datastore, Dataclass, Entity, Entity-Selection) besteht aus streng-typisierten Objekten, die an spezifische ORDA Klassen gebunden sind, d.h. Sie können Funktionen schreiben, die die Komplexität der physischen Implementierung Ihrer Daten in den Hintergrund setzen.

4D erstellt automatisch:

  • Klasse Entity: Zum Einfügen von Funktionen für eine Entity (um z.B. Versandkosten für die aktuelle Lieferung zu berechnen. Code ist einem bestimmten Datensatz zugewiesen).
  • Klasse EntitySelection: Zum Einfügen von Funktionen für eine Entity Selection (um z.B. eine Statistik zu ausgewählten Datensätzen zu erstellen. Code ist einer Selection zugewiesen)
  • Klasse DataClass: Zum Einfügen von Funktionen für die Dataclass (für Code zu einer Tabelle, aber unabhängig von einem bestimmten Datensatz bzw. einer Selection, beispielsweise zum Erstellen eines neuen Datensatzes anhand der gelieferten Parameter)
  • DataStore: Zum Einfügen von Funktionen für den Datastore (für Code, der zu keiner Tabelle oder keinem Datensatz gehört, ähnlich zu einer generischen Projektmethode).
    Dokumentation lesen 

 

ORDA Klassen des Datenmodells und REST 

Sie können Funktionen für Klassen, die für das ORDA Datenmodell definiert wurden, über REST Anfragen aufrufen, um die Vorteile des veröffentlichten API des dazugehörigen 4D Anwendungsprojekts zu nutzen. Machen Sie Ihre Business Logik über eine gesteuerte API (durch Ihre Klassen) für andere Tools verfügbar, z.B. als Web Frameworks wie Angular oder React.
Dokumentation lesen 

 

Reichweite und Ausführungskontext für Funktionen 

Im Client/Server Modus werden ORDA Klassenfunktionen standardmäßig auf dem Server ausgeführt. Jetzt können Sie festlegen, dass einige davon auf dem Client ausgeführt werden. Dafür verwenden Sie das neue Schlüsselwort local. Sie können auch wählen, ob Klassenfunktionen als API für REST Clients veröffentlicht werden. Dafür verwenden Sie das neue Schlüsselwort exposed.
Dokumentation lesen

 

Schleife mit neuem 4D Tag blank

Ein neues Tag 4DEACH ist verfügbar. 4DEACH vereinfacht die Nutzung von Collections, Objekten und ORDA drastisch. Sie können es als 4D Tag in SHTML Seiten und auch mit dem Befehl PROCESS 4D TAGS verwenden. 
Dokumentation lesen

 

Update des ORDA Modells ohne Neustart

Bei 4D im Einzelplatz müssen Sie Ihre Anwendung nicht mehr neu starten, um nach einem Update der Struktur einen aktualisierten Datastore zu erhalten.

Auch in einer Client-/Server-Umgebung ist für Code, der auf 4D Server läuft, kein Neustart erforderlich. Für remote 4D müssen Sie lediglich den Client neu starten, der ein Update der Struktur benötigt.
Dokumentation lesen

 

Shareable Entity Selections 

Manchmal wollen Sie eine Entity-Selection mit einem anderen Prozess teilen oder auch für alle Prozesse verfügbar machen. Hierzu ein Beispiel: Sie führen eine komplexe Suche aus, um alle überfälligen Rechnungen zu finden, dann soll der Endanwender einige davon (oder alle) auswählen können und anschließend eine Zahlungserinnerung als E-Mail versenden. Das Senden der E-Mails wird am besten in einem anderen Prozess ausgeführt, damit der Anwender nicht blockiert wird. Anstatt eine Liste mit Primärschlüsseln für den neuen Prozess anzulegen, können Sie diesen Vorgang über eine shared Entity-Selection direkt an einen anderen Prozess übergeben. Shared Entity-Selections lassen sich auch dem Storage Objekt zuweisen, um sie mit allen Prozessen zu teilen.

Eine Entity-Selection kann shareable oder non-shareable sein:

  • Eine shareable Entity-Selection lässt sich in einem shared object bzw. shared collection speichern und kann zwischen mehreren Prozessen oder Workern geteilt werden. Sie erlaubt nicht Hinzufügen neuer Entities. Versuchen Sie, eine Entity in einer shared Entity-Selection hinzuzufügen, wird ein Fehler ausgelöst.
  • Eine non-shareable Entity-Selection lässt sich weder zwischen mehreren Prozessen teilen, noch in einem shared object oder shared collection speichern. Versuchen Sie, eine non-shareable Entity-Selection in einem shared object bzw. shared collection zu speichern, wird ein Fehler ausgelöst. Sie erlaubt jedoch Hinzufügen neuer Entities
    Dokumentation lesen

 

Neue Methoden für Entity Selection

Es gibt zwei neue Member Methoden:

  • Die Methode extract() extrahiert Daten aus einer Entity-Selection, so dass Sie eine individuell angepasste Collection erstellen können. Sie können die Dataclass Attribute für die Extraktion und ihre Namen in der zurückgegebenen Collection angeben.
  • Die Methode refresh() macht die Daten der Entity-Selection im lokalen ORDA Cache ungültig, so dass 4D beim nächsten Anfordern der Entity-Selection die Daten erneut aus der Anwendung lädt. Der ORDA Cache wird standardmäßig nach 30 Sekunden ungültig. Verwenden Sie diese Member Methode, wenn Sie Ihre Daten sofort aktualisieren müssen. 
    Dokumentation lesen

 

4D Programmiersprache & andere Features zur Programmierung

Unterstützung des Dark Modus auf macOS blank

4D unterstützt jetzt den Dark Modus. Er wird automatisch angewendet, wenn die Einstellung Dark Mode auf der macOS Ebene aktiviert ist. Das ist nur der Anfang. Der Dark Modus wird in zukünftigen Versionen weiter ausgeweitet, z.B. auf die Komponenten (z.B. das 4D Write Pro Widget) und den Designmodus.
Dokumentation lesen

Themes für den Codeeditor blank

4D bietet Basisthemes, die Sie ergänzen und an Ihre eigenen Bedürfnisse anpassen können:

  •  “default light theme” (gemäß dem klassischen Farbeditor)
  •  “default dark theme” (neue Farbe)

Wenn Sie die Farbwahl Ihres Kollegen oder ein Theme auf GitHub besser finden, macht das keine Mühe. Sie können dieses Theme verwenden, einfach durch Hinzufügen der entsprechenden JSON Datei in:

  • “<diskName>/Users/<userName>/Application Support/4D/4DEditorTheme” auf macOS
  • oder “<diskName>:\Users\userName>\AppData\Roaming\4D\4DEditorTheme” unter Windows
    Dokumentation lesen

 

Neue Syntax für Variablen

Zum Deklarieren Ihrer Variablen ist eine neue Syntax verfügbar. Sie nutzt das Schlüsselwort var, den Variablennamen und -typ. Das verbessert entscheidend das automatische Vervollständigen (autocompletion) beim Deklarieren Ihrer Variablen. Sie können in einer Anwendung die klassische und die neue Syntax zusammen verwenden.
Dokumentation lesen

 

Anzeige von Prototyp und Beschreibung für Class-Function

Um das Schreiben von Code im Editor leichter und einfacher zu machen, erscheint im Code-Editor der Prototyp einer Class-Function mit Kurzbeschreibung.

Die Liste mit Vorschlägen zeigt intelligentes Vervollständigen des Code, so dass Sie Code schneller und korrekt schreiben können. Während dem Schreiben Ihrer Function zeigt 4D den entsprechenden Prototyp mit kurzer Beschreibung an und hebt den Parameter hervor, den Sie gerade vervollständigen.
Dokumentation lesen

 
Kompilierung anderer Anwendungen per Programmierung starten blank

Beim Continuous Delivery soll die Kompilierung des Source-Code automatisch jedes Mal, wenn Code übertragen wird oder stündlich starten. Mit dieser Vorgehensweise können Sie Zusammenführungen auf dem Server zur Code-Verwaltung überprüfen. Mit dem neuen Befehl Compile Project in 4D v19 können Sie die Kompilierung des Code steuern, und so dieses Integrationssystem einrichten.
Dokumentation lesen

 
Angaben zu Ihrer Anwendung managen blank

Zum Erstellen Ihrer Anwendung nutzen Sie den Befehl BUILD APPLICATION mit einem Satz XML Keys, über die Sie den Build  konfigurieren können. Nach dem Build Prozess lassen sich Angaben, wie Unternehmen, Copyright oder Version der Anwendung hinzufügen. Ab 4D v19 können Sie diese Angaben auf Windows oder MacOS Plattformen lesen, hinzufügen oder ändern, ohne die XML Sprache und die Struktur der Datei info.plist zu beherrschen.

Dafür haben wir in der Datei Klasse zwei neue Functions hinzugefügt:

  • Um die Angaben in einer .exe (Windows) oder .plist (macOS) Datei hinzuzufügen, übergeben Sie in der Function setAppInfo ein Objekt mit den gewünschten Attributen.
  • Um die Angaben aus einer .exe oder .plist Datei zu lesen, gehen Sie einfach in getAppInfo, und Sie erhalten alle Attribute in einem Objekt.
    Dokumentation lesen

 

Erstellung des 4D Cross Plattform Client blank

Ab macOS Big Sur können Anwendungen nicht mehr unsigniert laufen. Bisher haben wir ein Workaround geliefert, um Client-/Server Anwendungen zu erstellen, die auf einem Windows Server laufen und Verbindungen von Mac Clients akzeptieren. Um dieses Szenario zu managen, haben wir das Erstellen von Anwendungen in 4D v19 aktualisiert.
Dokumentation lesen

 

Evolution der 4D Logbücher blank

Wir haben kürzlich unsere Log-Formate überarbeitet, um die Lesbarkeit und die Kompatibilität mit automatisierten Analysen zu verbessern. Das beruht auf realen Situationen, die wir erlebt haben. Dabei sind wir direkt die Probleme angegangen, die die Aussagekraft beim Analysieren von 4D Logs einschränken.
Dokumentation lesen

 

Collections und Listen in Formularobjekten verwenden blank

Ab 4D v19 können Sie den Inhalt einiger Objekte der Oberfläche über Collections definieren, dazu gehören auch die Formularfunktionen. Das ist für die generische Verwaltung der Oberfläche sehr hilfreich. Wir haben auch die Verwendungsweise  von Listen verbessert.

Die Verbesserungen gelten für:
Hierarchische Listen
Registerkarten

Collections lassen sich mit folgenden Objekten als Referenzen verwenden:
– DropDown-Listen (auch “PopUp-Listen” genannt)
Comboboxen
– Registerkarten
Dokumentation lesen

 

Eigene Daten mit dem 4D Algorithmus verschlüsseln blank

4D bietet einen einfachen und leistungsstarken Weg zum Verschlüsseln Ihrer Daten. Sie können jetzt den Algorithmus AES-256, der zur Datenverschlüsselung verwendet wird, auch für Ihre eigenen Zwecke einsetzen. Mit den Befehlen Encrypt data BLOB und Decrypt data BLOB können Sie Ihre eigenen Daten beliebig verschlüsseln und entschlüsseln.
Dokumentation lesen

 

E-Mails 

Unterstützung des Protokolls OAuth 2.0

OAuth 2.0 ist ein Standard zur Authentifizierung und Authorisierung, der Benutzerdaten schützt. Er gewährt Zugriff auf die Daten, ohne die Identität des Benutzers oder Credentials offenzulegen. Für gesteigerte Sicherheit rüsten immer mehr E-Mail Server zu diesem Standard auf: Office365 und Gmail empfehlen OAUTH2 zum Verwalten von E-Mails.

Mit 4D v19 können Sie den Authentifizierungsmodus OAuth 2.0 für eine Verbindung nutzen. IMAP, SMTP und POP3 Transporter unterstützen das Protokoll OAuth 2.0 jetzt nativ.
Dokumentation lesen

 

IMAP Flags verwalten

Über das IMAP Protokoll lässt sich einer Mail eine Liste mit Flags zuordnen, um zusätzliche Information zu verwalten. Das Objekt IMAP transporter hat eine Reihe Funktionen zum Hinzufügen oder Entfernen von IMAP Flags erhalten.

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

  • \Seen: Mail wurde gelesen
  • \Answered: Mail wurde beantwortet
  • \Flagged: Mail wurde mit Flagge markiert für dringende bzw. besondere Aufmerksamkeit
  • \Deleted: Mail wurde mit “zu löschen” markiert. Es wird entfernt, wenn die Funktion expunge() aufgerufen, die Mailbox gewechselt oder die Verbindung geschlossen wird. Dieses Flag wird bereits mit der Funktion delete() hinzugefügt
  • \Draft: Verfassen der Mail wurde nicht abgeschlossen (markiert als Entwurf)
    Dokumentation lesen

 

Mailboxen mit IMAP erstellen, löschen und umbenennen blank

Über verschiedene Funktionen können Sie Ihre Mailboxen per Programmierung verwalten, wie Mailboxen erstellen, umbenennen oder löschen. Eine Mailbox erscheint in E-Mail Clients als Ordner, wie bei Microsoft Outlook oder Apple Mail.
Dokumentation lesen

 

E-Mails in spezifischer Mailbox sichern

In manchen Fällen erwarten Kunden, dass sie beim Senden von E-Mails aus 4D eine Kopie in der Mailbox “Sent” von Outlook oder Apple Mail erhalten. Hier hat 4D v19 die Antwort. Um eine Kopie Ihrer E-Mail nach dem Senden zu sichern:

  • Erstellen Sie zuerst zwei Transporter: Einen SMTP transporter, um die E-Mail an Ihren Client zu senden; einen IMAP transporter, um die E-Mail in Ihren Mail Server zu laden.
  • Nach dem Senden der E-Mail per SMTP verwenden Sie die Funktion append() des IMAP transporter.
    Dokumentation lesen

 

E-Mails suchen und laden

Über eine Suche lassen sich E-Mails der aktuellen Mailbox nach bestimmten Suchkriterien auflisten, wie z.B. alle ungelesenen E-Mails einer bestimmten Person oder alle E-Mails der letzten 4 Wochen. Die neue IMAP_transporter Funktion gibt eine Collection der Mail-IDs zurück, die dann die Methode getMails direkt zum Laden der Mails verwenden kann. 
Dokumentation lesen

 

E-Mails kopieren, verschieben und löschen

Der IMAP_transporter hat die neuen Funktionen copy()move() und delete() erhalten.
Dokumentation lesen

 

E-Mails über POP3 empfangen

Mit dem neuen Befehl POP3 New transporter können Sie Ihre E-Mails via POP3 lokal downloaden und aus Ihrem E-Mail Server entfernen. Post Office Protocol (POP) ist ein Standard Protokoll im Internet, um E-Mails von einem Mail Server zu finden. Es ist hilfreich für Aktionen wie Anmelden an einen POP3 Server, Mails finden, um sie automatisch zu bearbeiten (Speichern in Ihrer lokalen Anwendung) und aus dem Server zu löschen. Es gibt einige Methoden zum Verwalten Ihrer E-Mails:

  • getMailInfoList(): Gibt Information über alle Mails in Ihrer Mailbox zurück.
  • getMailInfo(): Gibt Information über eine einzelne Mail zurück.
  • getMail(): Damit lassen sich bestimmte E-Mails laden. Es wird eine Mailnummer übergeben, die als Parameter von getMailInfoList() zurückgegeben wird.
  • delete(): Setzt Flag für spezifische Mails, die beim Schließen der Session gelöscht werden sollen.
  • getBoxInfo(): Gibt die Anzahl der E-Mails in Ihrer Mailbox und die Größe der Mailbox an.
    Dokumentation lesen

 

E-Mails über IMAP empfangen

Analog zu SMTP und POP3 gibt es den neuen Befehl IMAP New transporter zum Verwalten des IMAP Protokolls. Wir haben Befehle zum Auswählen einer Mailbox und Laden einer E-Mail hinzugefügt.
Dokumentation lesen

 

Download Ihrer E-Mails im MIME Format

In 4D v19 lassen sich E-Mails wie im Original, im unkonvertiert empfangenen Format speichern. Die Methode POP3_transporter.getMIMEAsBlob( ) gibt ein BLOB mit dem MIME Inhalt für eine spezifische Meldung zurück, das Sie in Ihrer Anwendung oder an anderer Stelle speichern können.
Dokumentation lesen

 

Neue Klasse CryptoKey

Die neue Klasse CryptoKey enthält einen Satz Methoden zum Durchführen gängiger kryptografischer Operationen wie Signatur und Verifizierung, Verschlüsseln und Entschlüsseln. Damit können Sie vertrauliche Daten schützen, sowie die Integrität von Meldungen und die Authentizität des Senders verifizieren. Diese Klasse dient für folgende Zwecke:

  • Vertraulichkeit: Daten vor unerlaubtem Zugriff schützen
  • Integrität: Vollständige und korrekte Daten gewährleisten
  • Authentizität: Die Authentizität des Absenders/Empfängers einer Meldung bestätigen
    Dokumentation lesen

 

Web 

Skalierbare Web Sessions

Der 4D Web Server bietet eine neue Art von Web Session, die die Performance Ihrer Web Applikationen entscheidend verbessert: die skalierbare Web Session.

Skalierbare Web Sessions können mehrere Prozesse im preemptive Modus verwalten, d.h. sie können mehrere Benutzeranfragen gleichzeitig bearbeiten und die Daten in diesen Prozessen gemeinsam nutzen. Dokumentation lesen

 

Attribute SameSite und Secure für Cookies blank

Cookies sind über die Jahre gewachsen, haben jedoch ein paar alte Probleme hinterlassen. Um dies zu verwalten und ein secure-by-default Modell für Cookies zuzulassen, ändern Browser (inkl. Safari, Chrome, Firefox und Edge) ihr Verhalten in Bezug auf die Attribute SameSite und Secure. Dafür bietet 4D v19 einige Verbesserungen. Dokumentation lesen

 

Unterstützung von Cross-Origin Resource Sharing (CORS)

Sie können den CORS Dienst aktivieren, so dass eine Web Seite auch Anfragen an andere Domains als die eigene stellen kann. Aus Sicherheitsgründen sind “cross-domain” Anfragen auf Browser-Ebene standardmäßig verboten. Dafür gibt es zwei Wege:

  • Über die Befehle WEB SET OPTION und WEB Server. Sie übernehmen Domain Parameter, um spezifische Aktionen, wie GET, POST, HEAD, PUT zuzulassen.
  • In den Datenbank-Eigenschaften: Auf der Seite Web > Optionen (II) im Bereich CORS Einstellungen 
    Dokumentation lesen

 

Data Explorer (Preview)

4D v19 bietet eine Vorschau des 4D Data Explorer. Damit können 4D Entwickler oder Administratoren leicht ihre Anwendungsdaten in einem Web Browser überprüfen – es ist keine Web Server Lizenz erforderlich. In diesem Video sehen Sie das Produkt in Aktion.

 

Angepasster 4D Cache Ordner für eingebundenen 4D Server 

Hostet Ihr Rechner eine eingebundene Server Anwendung, die mit verschiedenen 4D Versionen erstellt wurde (wie z. B. alte Version im Produktionseinsatz, neue Version für Tests), kann es Probleme in Bezug auf den gemeinsam genutzten 4D Strukturordner geben. Damit dieser nicht zwischen den verschiedenen 4D Versionen geteilt wird, können Sie jetzt während dem Erstellen der Server Anwendung den Ordnernamen mit dem neuen Schlüssel buildApp definieren und Ihren eigenen Strukturordner setzen. Dokumentation lesen

 

Angepasster 4D Cache Ordner für eingebundene 4D Clients 

Verbinden Sie Ihre remote Anwendung mit mehreren Servern, kann dies zuweilen zu einem großen lokalen Ressourcen Ordner führen, was unnötig Zeit, Volumen und Netzwerk verbraucht. Mit dem neuen Schlüssel buildApp können Sie jetzt den gleichen lokalen Ressourcen Ordner mit allen Servern teilen. Dokumentation lesen

 

Verbesserte Integration des Logbuch 

Bei einem 4D Server im laufenden Betrieb sollte alles vollautomatisch ablaufen und kein Administrator erforderlich sein. Das ist besonders wichtig mit Auto Update und Arbeiten im Headless Modus. Jedoch können nach Stromunterbrechung oder einem Crash kleinere Fehler im Logbuch u.U. das automatische Hochfahren von 4D Server stoppen. Jetzt gibt es eine neue Option, um nicht-kritische Fehlermeldungen auszuschließen (aber weiterhin in einem Log zu protokollieren), und so den Systemausfall zu reduzieren. Dokumentation lesen

 

Benutzerrechte dynamisch zuweisen 

Es ist bereits möglich, ein eigenes Zugriffssystem für Endbenutzer einzurichten und den Befehl SET USER ALIAS einzusetzen. Jetzt können Sie auch die Zugriffsrechte des 4D Benutzerkontos steuern. Mit dem neuen Befehl SET GROUP ACCESS können Sie Zugehörigkeiten zu Gruppen dynamisch setzen. Dokumentation lesen

 

User Alias im Journal speichern

Der Befehl SET USER ALIAS wurde in 4D v19 erweitert, so dass Sie sehen, wer was ausgeführt hat. Gibt es ein Alias, wird es auch im Journal gespeichert. Damit können Sie den korrekten Benutzer finden, selbst wenn mehrere Benutzer einen Rechner oder System Account gemeinsam nutzen. Der Benutzername erscheint:

  • im MSC auf den Seiten Aktivität Analyse und Rollback
  • im Dialog, der über CHECK LOG FILE angezeigt wird
  • und in der JSON Datei, die über LOG FILE TO JSON generiert wird.
    Dokumentation lesen

 

Langsame Operationen überwachen 

4D v19 bietet den neuen Befehl START MONITORING ACTIVITY. um leicht zu erkennen, welche Operation den Server verlangsamt. Er protokolliert Operationen, die eine definierte Mindestzeit überschreiten, mit zwei Parametern: die Dauer und die zu überwachende Operation. Gemäß der Spezifikationen dieses Befehl können Sie dann die protokollierte Aktivität mit dem Befehl Get Monitored Activity() auslesen. Um die Nachverfolgung zu stoppen oder die Liste der Aktivität zu leeren, rufen Sie den Befehl STOP MONITORING ACTIVITY auf. Dokumentation lesen

 

Listbox

Klicks in Zellen in Bearbeitung verwalten 

Das Formularereignis On Clicked wird ausgelöst, egal ob eine Zelle bearbeitet wird oder nicht. Das sorgt für mehr Steuerung und eine verbesserte Oberfläche und ist z.B. hilfreich, um beim Bearbeiten einer Zelle mögliche Werte über ein Kontextmenü anzuzeigen. Beim Auswählen einer Zeile können Sie eine Farbauswahl für genau diese Zeile oder Zelle anbieten.

Hinweis zur Kompatibilität: Haben Sie bereits Code, der während dem Ereignis On Clicked abläuft, wollen Sie evtl. diese Ausführung stoppen, wenn in einer Zelle in Bearbeitung ein Klick auftritt. Dazu testen Sie mit der Funktion is editing text einfach vorab den Status dieser Zelle. Dokumentation lesen

Zeitangaben in Spalten und Berechnungen in Fußteilen blank

Die neuen Listboxen mit Collections oder Entity-Selections bieten in vielerlei Hinsicht große Leistungsstärke. Bisher gab es jedoch zwei Einschränkungen im Vergleich zu Listboxen, die Arrays oder Datensätze anzeigen: die Zeitanzeige und besonders automatische Berechnungen im Fußteil.

Jetzt können alle Arten von Listboxen Zeitangaben in den Spalten und Berechnungen im Fußteil anzeigen. Dokumentation lesen

Verbessertes type-ahead

Normalerweise erhält eine Listbox Ereignisse bei Verwenden der Tastatur nur im Bearbeitungsmodus. Das verhindert jedoch, dass die Liste automatisch gefiltert oder eine Eingabe gewählt wird, wenn ein Benutzer die Tastatur und eine nicht-eingebbare Listbox verwendet hat.

Jetzt wird das Ereignis before Keystroke erzeugt, sobald die Listbox den Fokus hat und ein Zeichen getippt wird, selbst wenn keine Daten in eine Zelle eingegeben werden. So kann 4D erkennen, welche Tasten gedrückt wurden und dann per Programmierung entscheiden, wie es weitergehen soll – beispielsweise eine neue Suche starten oder die aktuelle Auswahl ändern.

Der neue Befehl Is editing text dient hauptsächlich dazu, festzustellen, ob es sich bei Auslösen von On before keystroke um eine aktuelle Dateneingabe handelt. Er ermöglicht z.B., dass eine Listbox editierbar ist – und unterstützt die type-ahead Funktionen. Die beiden Ereignisse On before keystroke und On after keystroke unterstützen jetzt Hilfemeldungen des Systems, um diakritische Zeichen wie éä oder asiatische Zeichen auszuwählen. Das Ereignis wird verzögert, bis der Endbenutzer die endgültigen Zeichen auswählt. Sie müssen sich nicht selbst darum zu kümmern. Dokumentation lesen

Features für Listbox sind frei verfügbar

Sie benötigen keine 4D View Pro Lizenz mehr, um fortgeschrittene Features, z.B. für Listboxen zu nutzen. Sie sind frei verfügbar, d.h. Sie können jetzt auch folgendes ausführen:

  • Die Zeilenhöhe automatisch an den jeweiligen Inhalt anpassen, damit Text oder Bild komplett angezeigt werden.
  • Objekt Arrays in Spalten verwenden, um in den Zeilen einer Spalte der Listbox verschiedene Datentypen einzugeben und auch unterschiedliche Widgets anzuzeigen.
    Dokumentation lesen

Bewegliche Zeilen per Code einrichten

Für Listboxen vom Typ Array können Sie im Designmodus festlegen, ob Endbenutzer Zeilen bewegen dürfen, z.B. um Zeilen anders anzuordnen bzw. zu gruppieren. Die Befehle LISTBOX SET PROPERTY und LISTBOX Get property wurden ergänzt und unterstützen die neue Eigenschaft lk movable rows. Dokumentation lesen

Zeilen einer Listbox wählen

Der neue Befehl LISTBOX SELECT ROWS vereinfacht das Auswählen von Zeilen einer Entity Selection. Ist eine Entity Selection als Parameter übergeben, lassen sich die dazugehörigen Zeilen intuitiv auswählen, hinzufügen oder aus der Auswahl entfernen. Bei einer Collection Listbox übergeben Sie eine Collection mit den Objektreferenzen, die Sie für den Befehl auswählen wollen. Dokumentation lesen

 

Kontrolle über den Arbeitsbereich

Grafische Systemelemente wie das Dock auf macOS oder die Werkzeugleiste unter Windows werden berücksichtigt, so dass Sie den ganzen Bildschirm verwenden können. Der Befehl SCREEN COORDINATES hat den optionalen Parameter Screen work area erhalten. Damit können Sie einstellen, dass die Fenster Ihrer Anwendung im sichtbaren Bereich sind (insbesondere im SDI Modus unter Windows). Dokumentation lesen

 

XML: Verbesserte XPath Unterstützung

Ab 4D v19 ist die XPath Implementation konformer und unterstützt auch Ausdrücke wie  //, @, *, last(), was Ihre Suchläufe vereinfacht. Zur Wahrung der Kompatibilität wird in konvertierten Anwendungen die bisherige nicht-standardmäßige Implementation beibehalten. Wollen Sie die erweiterten Features in Ihren konvertierten Anwendungen nutzen, aktivieren Sie auf der Seite Kompatibilität die Option Verwende Standard XPath. Dokumentation lesen

 

Verbesserungen bei Object und Collection

Der Befehl OB Copy() und die Member Methode collection.copy() Sie können nun jeweils ein Standardobjekt hinzufügen und so komplexen Code vermeiden, der den Inhalt des Standardobjekts in shared object oder collection kopieren würde. Außerdem gibt es neue Befehle, um ein Objekt als hash map zu verwalten:

  • OB Keys gibt die Eigenschaftsnamen eines Objekts als Collection zurück
  • OB Values gibt die Eigenschaftswerte eines Objekts als Collection zurück
  • OB Entries gibt eine Collection der Objekte als Eigenschaftspaare key/value zurück.
    Dokumentation lesen

 

Offscreen Web Area erstellen

Mit dem neuen Befehl WA Run offscreen area können Sie einen Web Bereich im offscreen Modus verwenden. Er erstellt einen Web Bereich im Speicher und übernimmt in parameters alle hilfreichen Angaben für den Web Bereich, wie:

  • Die URL zum Laden
  • Den Namen des Bereichs
  • Die aufgerufene Formel, wenn ein Ereignis vom Web Bereich ausgegeben wird.

Der neue Befehl WA OPEN WEB INSPECTOR erleichtert das Debugging mit dem Web Bereich im offscreen Modus. Er öffnet den Web Inspektor, so dass Sie prüfen können, ob die Seite korrekt geladen wurde oder ob Ihr Javascript Code Fehler ausgibt.
Dokumentation lesen

 

Auf Werte von Formularobjekten zugreifen

Es gibt zwei neue Befehle, um auf die Werte von Formularobjekten zuzugreifen, egal ob Variable oder Ausdruck: OBJECT Get value und OBJECT SET VALUE. Um den Wert eines Formularobjekts zu erhalten, übergeben Sie in OBJECT Get value den Namen Ihres Formularobjekts als Parameter. Um den Wert zu setzen, übergeben Sie in OBJECT SET VALUE den Namen und den neuen Wert als Parameter. Dokumentation lesen

 

Verbesserungen für String Vergleiche

4D bietet sehr versierte Tools zum Suchen und Vergleichen von Strings, die sich an Kontexte und Situationen, die Entwickler vorfinden, anpassen lassen.

Mit 4D v19 wurde der Befehl Position erweitert und der neue Befehl Compare strings hinzugefügt:

  • Position: Hier gibt es mehr Vergleichskriterien, wie die Berücksichtigung von Klein- und Großschreibung oder von Akzenten. Die japanische Sprache (Hiragana/Katagana) ist verfügbar und als Suchkriterien die Breite von Zeichen sowie ganzes Wort.
  • Compare strings: Damit lassen sich Strings mit denselben Kriterien wie für den Befehl Position vergleichen. Zusätzlich basiert er auf der aktuellen Sprache, die in den Datenbankeinstellungen definiert ist. Das kann z.B. für gezielte Sortierungen sehr nützlich sein.
    Dokumentation lesen

Verbesserungen des 4D Debugger

Neue Optionen und zusätzliche Angaben erleichtern das Verfolgen und Analysieren Ihres Code im Schrittmodus.

    • Parameter: Beim Debuggen von Code ist es wesentlich, die Eingabe- und Ausgabeparameter einer Methode /Funktion zu kennen. Im Debugger Fenster erscheint die Zeile der Deklaration links oben, im Bereich Aufruffolge können Sie wählen, ob der Parametertyp ein- oder ausgeblendet wird.
    • Kommentare: Zum besseren Verständnis einer Methode/Funktion werden in der Regel zu Beginn eines Code Blocks Kommentare eingefügt. Diese Kommentare sind jetzt im Debugger sichtbar.
      Dokumentation lesen

 

Remote Debugger

Sie können jetzt Server-Code direkt auf einem remote 4D debuggen. Der 4D Debugger öffnet sich nach Wunsch auf dem 4D Server oder einem Client. Remote Debugging ist besonders hilfreich, wenn Ihr Server im headless Modus läuft (oder als ein Windows Service).

Es gibt client- und server-seitig zwei neue Menüeinträge zum Zuweisen des Debugger:

  • Debugger anfügen / entfernen: Debugger direkt Ihrem Client oder Server zuweisen oder abkoppeln.
  • Debugger beim Startup anfügen: Weist den Debugger beim Starten Ihres Client oder Server zu. 

Beachten Sie, dass sich der Debugger jeweils nur einem 4D zuweisen lässt. Versuchen Sie beispielsweise den Debugger Ihrem Server zuzuweisen, ohne ihn vom Client abzukoppeln, erscheint eine Fehlermeldung mit Angaben zum Debugger Eigentümer.

Damit Sie besser unterscheiden können, ob der Debugger und die Bereiche mit Fehlern vom Server oder vom Client stammen, haben wir auch die Darstellung dieser Fenster angepasst. Dokumentation lesen

4D Write Pro

 

Word Dokumente in 4D Write Pro importieren blank

Sie können jetzt .docx Dokumente in 4D Write Pro importieren. Dafür setzen Sie im vorhandenen Befehl WP Import document die neue Konstante wk docx ein. Beachten Sie, dass 4D Write Pro das Meiste vom MS Word Dokument importiert, außer das, was 4D Write Pro nicht unterstützt (ausführliche Informationen dazu finden Sie im Abschnitt Import und Export im Format .docx. Beim Importieren wird ein Importprotokoll erstellt und in das 4D Write Pro Dokument selbst integriert. Sie können es mit der Funktion WP GET ATTRIBUTES aufrufen und nachsehen, ob es große Unterschiede zwischen dem Original und dem konvertierten Dokument gibt. Dokumentation lesen

 

Direkter Export in PDF

4D Write Pro Dokumente lassen sich direkt in das PDF-Format exportieren. Sie müssen dafür keine Druckertreiber oder zusätzliche Software installieren. Das macht den Export schneller und zuverlässiger als über Druckertreiber und bietet mehr Kontrolle über das Druckergebnis: Hyperlinks werden unterstützt, Sie können die Bildgröße optimieren, u.v.m. Der Befehl WP EXPORT DOCUMENT wurde ergänzt und hat die neue Konstante wk pdf erhalten. Dokumentation lesen

 

Suchen und Ersetzen blank

Mit den Befehlen WP Get text und WP Set text können Sie bereits Text im 4D Write Pro Dokument suchen und bei Bedarf ersetzen. Mit dem neuen Befehl WP Find all können Sie optionale Suchkriterien festlegen und dann geht es noch schneller.
Dokumentation lesen

 

Umbrüche finden blank

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

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

Manchmal müssen Sie einen bestimmten Umbruchtyp ausfindig machen, um ihn durch einen anderen zu ersetzen, oder um einfach alle Vorkommen im Dokument zu löschen. Dafür ist der neue Befehl WP Get breaks verfügbar. Dokumentation lesen

 

Zeilenschaltungen in Formeln bewerten

Die neue Konstante wk break paragraphs in formulas definiert, wie ein Zeilenumbruch in Formeln im 4D Write Pro Dokument gewertet wird. Es gibt zwei Werte:

  • wk true: Interpretiert als Absatzumbruch
  • wk false: (Standardwert) Interpretiert als Zeilenumbruch
    Dokumentation lesen

 

Verbesserungen der Benutzeroberfläche

Der 4D Write Pro Bereich hat die neue Registerkarte Import Export erhalten, um Dokumente in verschiedenen Formaten zu importieren und exportieren. Es gibt auch Verbesserungen in der Toolbar und Sidebar. Sie können Text vergrößern/verkleinern, das Lineal kopieren/einsetzen, die Hintergrundfarbe eines Absatzes und den Stil eines Wortes (Großbuchstaben, Kleinbuchstaben, etc.) ändern. Dokumentation lesen

Nur bestimmte Seiten des Widget anzeigen

4D zeigt nur die Seiten an, die in der Collection angegeben sind und in deren Reihenfolge. So können Sie nicht genutzte Features weglassen und die Handhabung für den Endanwender vereinfachen. Werden z.B. nur Stilattribute benötigt, muss nicht die gesamte Palette der Features erscheinen. Das 4D Write Pro Widget bietet mit der neuen Komponentmethode WP ShowTabPages die Möglichkeit, die Seiten zum Anzeigen auszuwählen. Sie übergeben den Namen des Widget und eine Collection der Seiten, die beim Aufrufen der Methode angezeigt werden sollen. Dokumentation lesen

Zeichen für Dezimaltabs wählen

Bei Dokumenten aus verschiedenen Quellen sind u.U. die Zahlen nicht in passender Weise formatiert. Jetzt können Sie in 4D Write Pro diese Einstellung für jedes Dokument angeben. Es gibt folgende Optionen beim Ausrichten der Nummern nach Dezimaltabs:

  • Punkt
  • Komma
  • erstes gefundenes Zeichen (Punkt oder Komma)
  • vom Betriebssystem definierter Dezimaltrenner

Für größtmögliche Kompatibilität (insbesondere mit MS Word) wird beim Erstellen neuer Dokumente standardmäßig das erste gefundene Zeichen gewählt und beim Migrieren von 4D Write Dokumenten in 4D Write Pro der vom Betriebssystem definierte Dezimaltrenner. Dokumentation lesen

 

Weiche Trennung verwalten

Neue Standardaktionen und neue Schaltflächen in den Widgets der 4D Write Pro Oberfläche vereinfachen das Einfügen von weicher Trennung (soft-hyphens).

Dafür gibt es die beiden neuen Standardaktionen:

  • insertSoftHyphen
  • removeSoftHyphens

Diese Funktionalität ist auch in den Widgets (Toolbar und Sidebar) der 4D Write Pro Oberfläche enthalten. Dokumentation lesen

Neue Standardaktionen für Tabellen und ihre Elemente

4D Write Pro enthält in 4D v19 enthält neue Standardaktionen für Tabellen, Zeilen und Zellen. Sie können den Randstil einer Tabelle, die Hintergrundfarbe einer Zelle, die vertikale Ausrichtung von Text in einer Zeile, die Ausrichtung der Tabelle selbst im Dokument, Ränder, Einrückung und mehr als 40 Optionen festlegen. Das bietet viele Gestaltungsmöglichkeiten für Tabellen, was die Oberfläche von 4D Write Pro weiter verbessert. Es gibt vier neue Schaltflächen, um die Darstellung von Tabellen, Zeilen, Spalten oder Zellen zu verändern. Dokumentation lesen

Neue Attribute für Schutzstatus

Teilbereiche oder alle Bereiche von 4D Write Pro Dokumenten lassen sich auf Nur-Lesen setzen. Es gibt zwei Schutzstufen. Als erstes müssen Sie definieren, welcher Teil des Dokuments geschützt bzw. nicht geschützt sein soll. Standardmäßig sind alle Teile geschützt. Als zweites müssen Sie den Schutzstatus für das Dokument aktivieren, damit die festgelegten Einstellungen berücksichtigt werden. Dafür hat der Befehl WP SET ATTRIBUTES zwei neue Attribute erhalten: wk protected (lässt sich für fast jede Art von Ziel in einem Dokument setzen) und wk protection enabled (aktiviert oder deaktiviert den globalen Schutzstatus).
Dokumentation lesen

Formeln in Dokumenten verwalten

4D v19 enthält einen Satz Befehle, über die Sie Formeln innerhalb Ihrer 4D Write Pro Dokumente verwalten können:

  • WP Get formulas: Findet alle Formeln im angegebenen Ziel (das ganze Dokument oder Teilbereiche, wie Hauptteil, zweiter Abschnitt, linker Kopfteil, etc.). 
  • WP Insert formula: Fügt einen Ausdruck als Objekt Formel in angegebenen Ziel ein.
  • WP Compute formulas und WP Freeze formulas: Arbeiten in ganz ähnlicher Weise. Sie können beispielsweise alle Ausdrücke in einem Dokument neu berechnen oder nur Ausdrücke im Fußteil einfrieren.
    Dokumentation lesen

Bilder löschen

Mit dem neuen Befehl WP DELETE PICTURE können Sie eingebundene oder verankerte Bilder löschen. Suchen Sie einfach das entsprechende Bild über seine ID (WP Get element by ID) oder seine Position (WP Get elements) heraus und rufen dann den Befehl zum Löschen auf. Dokumentation lesen

 

 4D View Pro 

 

Verbesserungen mit SpreadJS v14 blank

4D v19 bietet in 4D View Pro eine Ribbon-Oberfläche mit vielfältigen Gestaltungsmöglichkeiten. Wir haben neue Features hinzugefügt, um die neuen Funktionalitäten von SpreadJS v14 zu unterstützen.

Es gibt folgendes:

  • Accessibility Support: bietet adequate Unterstützung für Benutzer mit Einschränkungen, die assistierende Technologien wie Screen Reader verwenden. Weitere Informationen dazu finden Sie unter Accessibility support
  • Comment Indicator Customization: Benutzer können jetzt Farbe und Größe des Indikators ändern.
  • Bilder aus Excel kopieren: unterstützt Kopieren von Bildern aus Excel und Einsetzen in Arbeitsblättern. Die übertragenen Bilder haben dieselben Ausmaße, Ränder und Hintergrund wie in Excel.
  • Fülleffekte und Muster: verbessern die Darstellung von Zellen in einem Spreadsheet durch Muster oder Abstufungseffekte für Zellen. Weitere Informationen dazu finden Sie unter Pattern Fill and Gradient Fill.

 

Unterstützung von sechs Sprachen

Zusätzlich zu Englisch unterstützen wir jetzt auch Französisch, Deutsch, Spanisch, Japanisch und Portugiesisch! Verwenden Sie 4D v19 mit einem Betriebssystem, das zu den unterstützten Sprachen passt, können Sie sehen, dass jetzt alle 4D View Pro Elemente übersetzt sind (Ribbon, Toolbar, Kontextmenü, Fehlermeldungen, etc.).

 

Ist das Dokument fertig geladen?

Es gibt zwei neue Ereignisse zum Feststellen, dass die Berechnungen abgeschlossen sind: On VP Range Changed und on Timer event.

Das kann z.B. nützlich sein, wenn Sie einen umfangreichen 4D View Pro Bereich mit unzähligen Formeln laden und die Berechnungen eine gewisse Zeit lang dauern. Oder Sie wollen in einem Offscreen Bereich das Dokument im PDF oder Excel Format exportieren und müssen erst das Ende der Berechnungen abwarten. Dokumentation lesen

 

Suchen und Ersetzen 

Manchmal müssen Sie beim Initialisieren eines 4D View Pro Dokuments bestimmte Werte oder Tags finden und mit Daten aus 4D ersetzen. Das gelingt mit dem Befehl VP Find in einem Atemzug, denn damit können Sie Daten, Formeln oder Tags suchen und direkt im ganzen Arbeitsblatt oder nur in einem Teil davon ersetzen. Dokumentation lesen

 

4D Formeln in Spreadsheets 

Mit dem neuen Befehl VP SET CUSTOM FUNCTIONS können Sie eigene Funktionen zum Ausführen einer 4D Formel in 4D View Pro einrichten. Damit müssen Sie keine Methode mehr anlegen, um eine einfache Variable in 4D View Pro zu verwenden, sondern können sie einfach als Parameter in Formula übergeben. Zusätzlich erleichtert dieser Befehl das type-ahead für Endnutzer (durch Anzeigen von Hilfetext und Parameternamen) und ist letztendlich in sehr umfangreichen Strukturen viel schneller als der generische Befehl SET FIELD TITLES. Dokumentation lesen 

Offscreen Area 

Der neue Befehl VP Run offscreen area steuert 4D View Pro Befehle und Funktionen in einem offscreen Bereich. Um ihn zu verwenden, übergeben Sie im Parameter einfach die Angaben zum Bereich, wie z.B. Name des Bereichs und die aufgerufene Methode, wenn vom 4D View Pro Bereich ein Ereignis ausgelöst wird. Dokumentation lesen

Zellenverbund setzen und aufheben

Es gibt neue Befehle, um einen Zellenverbund per Programmierung zu setzen bzw. aufzuheben:

  • Zum Setzen eines Zellenverbunds definieren Sie den Bereich der gewünschten Zellen und übergeben ihn in VP  ADD SPAN. Er kombiniert dann diese Zellen zu einem Zellenverbund.
  • Über VP Get spans erhalten Sie alle gesetzten Zellenverbünde.
  • Mit VP REMOVE SPAN heben Sie die gesetzten Zellenverbünde in Ihrem Dokument wieder auf.
    Dokumentation lesen

 

Formeln: Berechnung starten, stoppen und fortführen

Es gibt drei neue Befehle, um die Berechnung von Formeln unmittelbar auszulösen, zu stoppen bzw. fortzuführen:

  • VP RECOMPUTE FORMULAS – um Formeln neu zu berechnen, z.B. wenn sich Daten geändert haben.
  • VP SUSPEND COMPUTING und VP RESUME COMPUTING – um Berechnungen zu stoppen und dann fortzuführen.
    Dokumentation lesen

 

Mehr Optionen zum Anpassen von Arbeitsblättern

Mit dem neuen Befehl VP SET SHEET OPTIONS lassen sich verschiedene Optionen für ein Arbeitsblatt in einem 4D View Pro Bereich definieren. Sie können beispielsweise folgendes ausführen::

  • Ein Arbeitsblatt schützen, damit sich keine Zellen darin bearbeiten lassen
  • In einem Arbeitsblatt eigene Farben für Tabs, eingefrorene Linien, Gitterlinien oder Hintergrund und Rahmen einer Auswahl setzen
  • Gitterlinien, sowie Kopfteile von Spalten und Zeilen ein- oder ausblenden.
    Dokumentation lesen

 

Zeilen und Spalten verwalten

4Dv19 bietet neue Befehle für Spalten und Zeilen, damit Sie Ihre Dokumente noch besser an Ihre Bedürfnisse anpassen können. Sie können Spalten bzw. Zeilen hinzufügen und entfernen, ihre Breite oder Höhe anpassen, ein- oder ausblenden und Bezeichnungen für Kopfteile definieren:

  • VP INSERT ROWS oder VP INSERT COLUMNS: Fügt Zeilen oder Spalten ein. Dazu übergeben Sie ein Range mit der ersten Zeile oder Spalte und die Anzahl der Zeilen oder Spalten zum Einfügen.
  • VP SET COLUMN COUNT und VP SET ROW COUNT: Definiert die Anzahl der angezeigten Spalten und Zeilen. Standardmäßig enthält ein Arbeitsblatt in 4D View Pro 100 Spalten und 1.000 Zeilen. 
  • VP DELETE ROWS oder VP DELETE COLUMNS: Entfernt bestimmte Zeilen oder Spalten.
  • VP SET COLUMN ATTRIBUTES und VP SET ROW ATTRIBUTES: Definiert die Spaltenbreite oder Zeilenhöhe; fügt einen Seitenumbruch für den Druck ein; blendet Spalten oder Zeilen ein oder aus; erlaubt oder verbietet das Anpassen von Spalten oder Zeilen durch Benutzer; ändert Bezeichnung für Kopfteil der Spalte oder Zeile.
    Dokumentation lesen

 

Zeilen und/oder Spalten 

VP SET FROZEN PANES richtet feste Ausschnitte ein, die beim Scrollen im Dokument sichtbar bleiben. Das ist bei einer umfangreichen Tabelle mit Daten sehr hilfreich. Sie können bis zu 4 Ausschnitte einfrieren: Spalten im Arbeitsblatt rechts und links und Zeilen im Arbeitsblatt oben und unten. Dokumentation lesen

 Zu den einzelnen R-Releases: