4D v16.3

Méthodes

Accueil

 
4D v16.3
Méthodes

Méthodes  


 

 

Pour faire fonctionner les commandes, les opérateurs, et les autres composants du langage, vous les placez dans des méthodes. Ce chapitre décrit les fonctionnalités communes à tous les types de méthodes. Il existe plusieurs types de méthodes : les méthodes objet, les méthodes formulaire, les méthodes table (ou triggers), les méthodes projet et les méthodes base.

Une méthode est composée de plusieurs lignes d’instructions. Une ligne d’instructions effectue une action. Cette ligne d’instruction peut être simple ou complexe. Cette ligne peut être aussi longue que vous voulez (elle peut comporter jusqu’à 32 000 caractères, ce qui est normalement suffisant pour la plupart des instructions).

Par exemple, la ligne suivante est une instruction qui ajoute un nouvel enregistrement à la table [Personnes] :

 ADD RECORD([Personnes])

Une méthode contient également des tests et des boucles qui structurent son exécution. Pour plus d'informations sur les structures de programmation, reportez-vous à la section Conditions et boucles.

Note : La taille maximale d’une méthode est limitée à 2 Go de texte ou 32 000 lignes d’instructions. Au-delà de ces limites, un message d’alerte apparaît, indiquant que les lignes supplémentaires ne seront pas affichées.

Il existe cinq types de méthodes dans 4D :

  • Méthodes objet : une méthode objet est une courte méthode associée à un objet actif dans un formulaire. En général, les méthodes objet “gèrent” l’objet au moment de l’affichage ou de l’impression du formulaire. Vous ne pouvez pas appeler une méthode objet, 4D l'exécute automatiquement lorsqu'un événement implique l'objet auquel la méthode est rattachée.
  • Méthodes formulaire : Une méthode formulaire est associée à 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 des méthodes objet dans ce cas. Vous ne pouvez pas appeler une méthode formulaire, 4D gère automatiquement son exécution lorsqu'un événement implique le formulaire auquel la méthode est attachée.
  • Méthodes table/triggers : Un trigger est associé à une table. Vous ne pouvez pas appeler un trigger. 4D les exécute automatiquement à chaque opération élémentaire effectuée sur les enregistrements de la table (Ajout, Suppression et Modification). Les triggers sont des méthodes pouvant prévenir toute action "illégale" opérée sur les enregistrements. Par exemple, dans un système de facturation, vous pouvez empêcher les utilisateurs d'ajouter des factures sans avoir spécifié le client concerné. Les triggers constituent un outil très puissant pour contrôler les opérations effectuées sur les tables ainsi que pour prévenir toute perte de données accidentelle. Vous pouvez écrire des triggers très simples ou très sophistiqués.

Pour plus d'informations sur les triggers, reportez-vous à la section Triggers.

  • Méthodes projet : A la différence des précédents types de méthodes, les méthodes projet ne sont associées à aucun objet, formulaire ou table, elles peuvent être utilisées à n'importe quel endroit de votre base. Les méthodes projet sont réutilisables et disponibles à tout moment, pour toute autre méthode. Si vous devez répéter certaines tâches, vous n'avez pas besoin de réécrire plusieurs méthodes identiques dans chaque cas. Vous pouvez appeler une méthode projet partout où vous en avez besoin — depuis d'autres méthodes projet, objet ou formulaire. Lorsque vous appelez une méthode projet, elle se comporte comme si vous l'aviez écrite à l'endroit d'où vous l'appelez. Les méthodes projet utilisées par d'autres méthodes sont appelées des sous-routines. Une méthode projet qui retourne un résultat peut aussi être appelée une fonction.

Il existe une autre manière d'appeler les méthodes projet : il suffit de les associer à des commandes de menus. Lorsque vous associez une méthode projet à une commande de menu, la méthode est exécutée lorsque la commande du menu est sélectionnée par un utilisateur.

  • Méthodes base : Tout comme les méthodes formulaire ou objet sont exécutées lorsqu'un événement se produit dans un formulaire, il existe des méthodes associées à la base entière, et qui sont exécutées lorsqu'un événement de session de travail se produit. Ce sont les méthodes base. Par exemple, à chaque fois que vous ouvrez la base, vous pouvez vouloir initialiser des variables qui seront utilisées pendant toute la session de travail. Pour cela, vous pouvez écrire des instructions dans la On Startup database method, exécutée automatiquement par 4D lorsque vous lancez la base.

Pour plus d'informations sur les méthodes base, reportez-vous à la section Méthodes base.

Toutes les méthodes sont fondamentalement identiques — elles débutent sur la première ligne et traitent chaque ligne d’instruction jusqu’à ce qu’elles atteignent la dernière ligne (c’est-à-dire qu’elles s’exécutent séquentiellement). Voici un exemple de méthode projet :

 QUERY([Personnes]) ` Afficher l’éditeur de recherches
 If(OK=1) ` L’utilisateur a cliqué sur OK (et non sur Annuler)
    If(Records in selection([Personnes])=0) ` Si aucun enregistrement n’est trouvé…
       ADD RECORD([Personnes])
  ` Permettre à l’utilisateur d’ajouter un enregistrement
    End if
 End if ` Fin

Chaque ligne de l’exemple est une ligne d’instruction. Tout ce que vous écrivez dans le langage de 4D est appelé du code. Le code est exécuté — ce qui signifie que 4D effectue l’action spécifiée par le code.

Nous allons examiner très attentivement la première ligne ; nous irons plus rapidement par la suite :

 QUERY([Personnes]) ` Afficher l’éditeur de recherches

Le premier mot de la ligne, QUERY, est une commande. Une commande est un élément du langage de 4D — elle effectue une action. Dans ce cas, QUERY affiche l’éditeur de recherches, tout comme le fait la commande Chercher... dans le menu Enregistrements en mode Développement.

Les parenthèses signifient qu’un paramètre est passé à la commande QUERY. Un paramètre (ou argument) est une valeur nécessaire à une commande pour remplir son rôle. Dans ce cas, [Personnes] est le nom d’une table. Les noms des tables sont toujours écrits entre crochets ([…]). Nous pouvons donc dire : « La table Personnes est un paramètre de la commande QUERY ». Une commande qui accepte plusieurs paramètres.

Enfin, il y a un commentaire à la fin de la ligne. Un commentaire vous informe (ainsi que toute personne qui examinera votre méthode) de ce qui se passe dans le code. Un commentaire est signalé par une apostrophe inversée (`). Dans une ligne, tout ce qui suit un signe de commentaire est ignoré lorsque le code est exécuté. Un commentaire peut être placé sur sa propre ligne, ou à la suite du code, comme dans l’exemple. N’hésitez pas à utiliser les commentaires dans vos méthodes ; la lecture et la compréhension de votre code sont facilitées, aussi bien pour vous-même que pour d’autres personnes.

Note : Un commentaire peut contenir jusqu’à 32 000 caractères.

La ligne suivante de notre exemple vérifie qu’aucun enregistrement n’a été trouvé :

 If(Records in selection([Personnes])=0) ` Si aucun enregistrement n’est trouvé…

La ligne d’instruction Si est un test conditionnel — une instruction qui contrôle l’exécution au pas à pas de votre méthode. Le Si effectue un test, et si le test est VRAI, la ou les lignes suivantes sont exécutées. Records in selection est une fonction — c’est-à-dire une commande qui retourne une valeur. Ici, Records in selection retourne le nombre d’enregistrements de la sélection courante de la table passée en paramètre.

Note : Seule la première lettre du nom d’une fonction est en majuscule. C’est la convention d’écriture utilisée pour les fonctions de 4D.Vous savez déjà ce qu’est la sélection courante : le groupe d’enregistrements avec lequel vous travaillez à un instant donné. Si le nombre d’enregistrements est égal à 0 (c’est-à-dire, si aucun enregistrement n’a été trouvé), la ligne de code suivante est exécutée :

 ADD RECORD([Personnes])

La commande ADD RECORD affiche un formulaire pour permettre à l’utilisateur de créer un nouvel enregistrement. Notez que cette ligne comporte une indentation. 4D formate votre code automatiquement ; l’indentation vous permet d’identifier facilement ce qui est dépendant du test conditionnel (Si).

End if ` Fin

La ligne d’instruction Fin de si conclut la séquence d’instructions contrôlée par le test Si. Pour chaque ligne d’instruction de test conditionnel, votre code doit comporter une instruction correspondante indiquant au langage où s’arrête le test. Nous vous conseillons de bien maîtriser les concepts évoqués dans ce chapitre. S’ils sont nouveaux pour vous, n’hésitez pas à relire les explications fournies jusqu’à ce qu’elles vous semblent claires.

  • Pour plus d'informations sur les méthodes objet et formulaire, reportez-vous à la description de la commande Form event ainsi qu'au manuel Mode Développement de 4D.
  • Pour travailler avec les triggers, reportez-vous à la section Triggers.
  • Pour une description détaillée des méthodes projet, reportez-vous à la section Méthodes projet.
  • Les méthodes base sont détaillées dans la section Méthodes base.



Voir aussi  

Conditions et boucles
Constantes
Identifiants
Opérateurs
Pointeurs
Présentation des méthodes base
Présentation des tableaux
Présentation des triggers
Types de données
Variables

 
PROPRIÉTÉS 

Produit : 4D
Thème : Présentation du langage

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)