Haben Sie sich schon einmal über die Autovervollständigungsfunktion von 4D gewundert oder sich gefragt, warum 4D alle im Code verwendeten Funktionen vorschlägt? Da ein Objekt ein sehr generischer Typ ist, weiß 4D nur, was es zur Laufzeit wirklich speichert. Das hilft aber nicht viel, wenn Sie Ihren Code schreiben.
4D bietet jetzt eine neue, alternative Syntax, die die automatische Vervollständigung bei der Deklaration Ihrer Variablen erheblich verbessert.
Die neue Syntax ist sehr einfach und besteht aus dem Schlüsselwort „var“, dem Namen der Variablen und ihrem Typ.
var <variableName> : <type>
Sie können Variablen sowohl mit der klassischen als auch mit der neuen Syntax in derselben Datenbank deklarieren.
Für Datentypen
Diese Syntax kann verwendet werden, um variable Datentypen zu definieren. Im Folgenden finden Sie einige Beispiele, die die Entsprechung zwischen den beiden Syntaxen für Variablen der Datentypen Text, Numerisch und Bild zeigen.
Vorherige Syntax
C_TEXT($text1;$text2)
C_LONGINT ($num)
C_PICTURE (
$pict)
Neue Syntax
var $text1; $text2: Text
var $num : Integer
var $pict : Picture
Für Benutzerklassen
Die Idee der Klassen wurde in 4D v18 R3 eingeführt. Falls Sie dies noch nicht getan haben, sollten Sie diesen Blogbeitrag lesen.
Bis jetzt wurden alle Instanzen einer Klasse als Objekt deklariert. Mit der neuen Syntax können Sie nun mit dem Befehl cs und dem Namen Ihrer Klasse angeben, zu welcher Klasseninstanz Ihr Objekt gehört. Dadurch erhalten Sie Zugriff auf die Funktionen und Attribute der Klasse.
Bisherige Syntax
C_OBJECT($person)
$person :=cs.Person.new()
Neue Syntax
var $person : cs.Person
$person :=cs.Person.new()
Für 4D-Klassen
Objekte wie File oder Folder sind Objekte, die zu internen 4D Klassen gehören. Auf sie können Sie mit dem Befehl 4D zugreifen.
Bisherige Syntax
C_OBJECT($folder)
$folder :=Folder(Current resource folder)
Neue Syntax
var $folder : 4D.Folder
$folder :=Folder(Current resources folder)
Was ist mit ORDA?
In einem früheren Blogbeitrag haben wir Ihnen gezeigt, dass Sie die ORDA-Klassen (Dataclass, Entity und Entity selection) mit Ihren eigenen Klassen überschreiben können. Sie können diese neue Syntax auch verwenden, um die Autovervollständigung zu nutzen.
Bisherige Syntax
C_OBJECT($dataclass)
C_OBJECT ($entity)
C_OBJECT (
$entitySelection)
Neue Syntax
var $dataclass : cs.Company
var $entity : cs.CompanyEntity
var $entitySelection : cs.CompanySelection