Vous êtes-vous déjà interrogé sur la fonction d’autocomplétion de 4D ou vous êtes-vous demandé pourquoi 4D suggère toutes les fonctions utilisées dans le code ? Comme un objet est un type très générique, 4D ne sait que ce qu’il stocke réellement au moment de l’exécution. Cependant, cela ne vous aide pas beaucoup lorsque vous écrivez votre code.
4D propose désormais une nouvelle syntaxe alternative qui améliore considérablement l’autocomplétion lors de la déclaration de vos variables.
La nouvelle syntaxe est très simple et se compose du mot-clé « var », du nom de la variable et de son type.
var <variableName> : <type>
Vous pouvez déclarer des variables avec la syntaxe classique et la nouvelle syntaxe dans la même base de données.
Pour les types de données
Cette syntaxe peut être utilisée pour définir les types de données des variables. Voici quelques exemples montrant la correspondance entre les deux syntaxes pour les variables de type texte, numérique et image.
Ancienne syntaxe
C_TEXT($text1;$text2)
C_LONGINT ($num)
C_PICTURE (
$pict)
Nouvelle syntaxe
var $text1; $text2: Text
var $num : Integer
var $pict : Picture
Pour les classes d’utilisateurs
L’idée des classes a été introduite dans 4D v18 R3. Si vous ne l’avez pas encore fait, vous devriez lire cet article de blog.
Jusqu’à présent, toutes les instances d’une classe étaient déclarées comme un objet. Maintenant, avec la nouvelle syntaxe, vous pouvez définir à quelle instance de classe votre objet appartient en utilisant la commande cs et le nom de votre classe. Cela vous donne accès aux fonctions et attributs de la classe.
Ancienne syntaxe
C_OBJECT($person)
$person :=cs.Person.new( )
Nouvelle syntaxe
var $person : cs.Person
$person :=cs.Person.new()
Pour les classes 4D
Les objets tels que File ou Folder sont des objets appartenant à des classes 4D internes. Vous pouvez y accéder avec la commande 4D.
Syntaxe précédente
C_OBJECT($folder)
$folder :=Folder(Current resource folder)
Nouvelle syntaxe
var $folder : 4D.Folder
$folder :=Folder(Current resources folder)
Qu’en est-il d’ORDA ?
Dans un précédent article de blog, nous vous avons montré que vous pouvez remplacer les classes ORDA (Dataclass, Entity et Entity selection) par vos propres classes. Vous pouvez également utiliser cette nouvelle syntaxe pour profiter de l’autocomplétion.
Ancienne syntaxe
C_OBJECT($dataclass)
C_OBJECT ($entity)
C_OBJECT (
$entitySelection)
Nouvelle syntaxe
var $dataclass : cs.Company
var $entity : cs.CompanyEntity
var $entitySelection : cs.CompanySelection