Aller au contenu principal
Version : 21 R4 BETA

Méthodes

Une méthode est essentiellement un morceau de code qui exécute une ou plusieurs action(s). Une méthode est composée d'instructions.

Une instruction exécute une action, et peut être simple ou complexe. Chaque instruction tient généralement sur une ligne dans la méthode (si nécessaire, elle peut toutefois être scindée à l'aide du caractère \).

La taille maximale d'une méthode est limitée à 2 Go de texte ou à 32 000 lignes de code.

Types de méthodes

Dans le langage 4D, il existe plusieurs catégories de méthodes. La catégorie dépend de la façon dont on peut les appeler :

TypeContexte d'appelAccepte des paramètresDescription
Méthode projetÀ la demande, lorsque le nom de la méthode du projet est appeléOuiPeut contenir du code pour exécuter des actions personnalisées. Une fois que votre méthode projet est créée, elle devient partie intégrante du langage du projet.
Méthode objet (widget)Automatique, lorsqu'un événement implique l'objet auquel la méthode est associéeNonPropriété d'un objet formulaire (également appelé widget)
Méthode formulaireAutomatique, lorsqu'un événement implique le formulaire auquel la méthode est associéeNonPropriété d'un formulaire. Vous pouvez utiliser une méthode formulaire pour gérer les données et les objets, mais il est généralement plus simple et plus efficace d'utiliser une méthode objet dans ces cas de figure.
Trigger (ou méthode table)Automatique, chaque fois que vous manipulez les enregistrements d'une table (Ajouter, Supprimer, Modifier)NonPropriété d'une table. Les triggers sont des méthodes qui permettent d'éviter les opérations "illégales" sur les enregistrements de votre base de données.
Méthode baseAutomatique, lorsqu'un événement se produit sur la session de travailOui (prédéfini)Il existe 16 méthodes base dans 4D.
ClasseAppelée automatiquement lorsqu'un objet de la classe est instancié ou lorsqu'une fonction de la classe est exécutée sur une instance d'objet dans toute autre méthode ou dans un champ de la base de données.oui (fonctions de classe)Une Classe est utilisée pour déclarer et configurer un constructeur, des propriétés et des fonctions d'objets. Voir Classes et classe Function.

Tokens du langage

Le langage de 4D comporte un système unique en son genre de tokenisation de tous les noms d'objets du langage utilisés dans le code (commandes, tables, champs, constantes, mots-clés). Tokeniser ces noms signifie les stocker en interne sous forme de références absolues (des numéros) au moment de leur saisie dans l'éditeur de code et les restituer à l'exécution ou à l'affichage en tenant compte du contexte. Ce principe permet de garantir que le code sera toujours correctement interprété, même si vous renommez vos tables ou vos champs, ou si des commandes du langage 4D sont renommées au fil des versions de l'application.

Note : Ce principe permet également d'assurer la traduction automatique du code lorsque vous avez activé l'option "Utiliser langage français et paramètres régionaux système" et ouvrez vos bases avec des versions de 4D de langues différentes.

La tokenisation est entièrement transparente pour les développeurs 4D lorsqu'ils travaillent dans l'éditeur de code, et vous n'aurez généralement pas à vous en soucier. Il existe toutefois deux cas dans lesquels vous pourriez avoir besoin d'intervenir concernant la tokenisation : si vous souhaitez la désactiver, et si vous souhaitez l'utiliser dans vos formules.

Désactivation de la tokenisation

Lorsque votre projet est hébergé sur un système de contrôle de version (VCS) tel que GitHub ou GitLab, vous pouvez choisir de désactiver la tokenisation afin de rendre le code plus lisible sur la plateforme externe. Pour ce faire, vous pouvez désélectionner l'option Inclure les tokens dans les fichiers source du projet afin d'empêcher que les tokens ne soient enregistrés dans vos nouveaux projets.

Vous pouvez configurer vos projets existants pour qu'ils enregistrent le code sans tokens en insérant la clé suivante dans le fichier <applicationName>.4DProject à l'aide d'un éditeur de texte :

"tokenizedText" : false

Ce paramètre n'est pris en compte que lors de l'enregistrement des méthodes. Les méthodes existantes dans vos projets ne sont pas modifiées, sauf si vous les enregistrez à nouveau.

Utilisation des tokens dans les formules

Une formule 4D de type texte est un texte qui est interprété au moment de l'exécution, et non au fur et à mesure de sa saisie. En fait, c'est le cas dès que le code 4D est exprimé sous forme de texte brut, notamment lorsque le code est exporté puis importé à l'aide des commandes METHOD GET CODE et METHOD SET CODE, copié/collé ou interprété à partir de balises 4D HTML. Pour tirer parti des mécanismes de tokenisation dans ces contextes, il suffit d'utiliser une syntaxe explicite consistant à faire précéder les noms d'objets du langage par leur token.

Syntaxe tokenisée

Pour les éléments tokenisables ayant un nom contenus dans des expressions, 4D propose une syntaxe spéciale qui vous permet de faire directement référence aux tokens : il suffit d’ajouter un suffixe spécifique après le nom de l’élément pour indiquer son type (commande, champ, etc.), suivi de sa référence. La syntaxe tokenisée est décrite dans ce tableau :

ÉlémentExemple (syntaxe standard)SuffixeExemple (syntaxe tokenisée)Commentaires
Commande 4DString(a):CxxString:C10(a)xx correspond au numéro de la commande
Constante 4DPi:Kxx:yyPi:K30:1xx correspond à l'identifiant du groupe de constantes et yy à son index (position) au sein de ce groupe
Table[Employees]:xx[Employees:1]xx correspond au numéro de la table
Champ[Employees]Name:xx[Employees:1]Name:2xx correspond au numéro du champ
4D PluginPV PRINT(area):Pxx:yyPV PRINT:P13000:229(area)xx correspond à l'identifiant du plug-in et yy à l'index de la commande

Note : Les lettres utilisées dans les suffixes (C, P) doivent impérativement être en majuscules, sinon elles ne seront pas correctement interprétées.

Lorsque vous utilisez cette syntaxe, vous avez la garantie que vos formules seront correctement interprétées même en cas de renommage ou d'exécution de la base dans une langue différente.

Cette syntaxe est acceptée dans toutes les formules 4D (ou expressions 4D), quel que soit leur contexte d'appel :

Où trouver les numéros des éléments ?

La syntaxe du token nécessite l'ajout des numéros de référence des différents éléments. L'emplacement de ces références dépend du type d'élément.

  • Commandes 4D : Les numéros des commandes figurent dans la documentation (section "Propriétés") ainsi que sur la page Commandes de l'Explorateur.
  • Tables et champs : Les numéros de tables et de champs peuvent être obtenus en utilisant les commandes Table et Field. Ils sont également affichés dans la palette Inspecteur de l'éditeur Structure.