Méthodes

4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant

version 2003 (Modifiée)


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] :

   AJOUTER ENREGISTREMENT([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.

Types de méthodes


Il existe cinq types de méthodes dans 4e Dimension :

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 (Chargement, 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 Présentation des 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 Méthode base Sur ouverture, exécutée automatiquement par 4D lorsque vous lancez la base.

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

Notes de compatibilité

Il n'est pas nécessaire de lire ces notes si vous travaillez sur de nouvelles bases créées avec la version 6 de 4e Dimension.

(1) La version 6 de 4e Dimension a introduit de nombreux nouveaux objets ainsi que les événements formulaire (tels que Sur double clic, Sur gain focus, etc.) qui remplacent les cycles d'exécution des versions precédentes. Si vous avez converti une base version 5 en version 6, vos formulaires ont été convertis de manière à ce que leur comportement corresponde à ce que vous en attendez. Si vous souhaitez tirer parti des nouveaux événements formulaires avec des objets créés dans une version précédente de 4D, vous devrez sélectionner ces nouveaux événements dans la Liste des propriétés pour les objets et les formulaires. Pour plus d'informations sur ce point, reportez-vous à la description de la commande Evenement formulaire et au manuel Mode Structure de 4e Dimension.

(2) Les triggers appartiennent à un nouveau type de méthodes introduit avec la version 6 de 4e Dimension. Dans les versions précédentes de 4e Dimension, les méthodes table (appelées alors formules-fichiers) n'étaient exécutées par 4D que lorsqu'un formulaire d'une table était utilisé pour la saisie, l'affichage ou l'impression. Elles étaient rarement utilisées. Il est à noter que les triggers sont exécutés à un niveau considérablement plus bas que ne l'étaient les formules-fichiers. Quelle que soit l'action réalisée sur un enregistrement (actions des utilisateurs — i.e. saisie — ou saisie par programmation — i.e. un appel à la commande STOCKER ENREGISTREMENT), le trigger d'une table sera appelé par 4D. Les triggers sont réellement différents des anciennes formules-fichiers. Si vous avez converti une base version 5 en version 6 de 4D et que vous souhaitez tirer avantage des triggers, vous devez désélectionner la propriété Utiliser les formules-fichiers de la V5.x.x dans la boîte de dialogue des Préférences, présentée ci-dessous.

(3) Les méthodes base sont un nouveau type de méthodes introduit avec la version 6 de 4e Dimension. Avec les versions précédentes de 4e Dimension, il n'existait qu'une méthode (appelée alors procédure) que 4D exécutait automatiquement au moment où vous ouvriez la base. Cette procédure devait être appelée STARTUP dans les versions de langue anglaise et DEBUT dans la version française afin d'être exécutée. Si vous avez converti une base version 5 en version 6 de 4D et que vous souhaitez tirer parti des capacités nouvelles de la Méthode base Sur ouverture, vous devez désélectionner la propriété Utiliser la méthode Debut de la V5.x.x dans la boîte de dialogue des Préférences de la base, présentée ci-dessous. Cette propriété n'affecte que l'option Sur ouverture/Procédure début. Si vous ne désélectionnez pas cette propriété et que vous ajoutez, par exemple, une Méthode base Sur fermeture, cette dernière sera quand même exécutée par 4D.

Un exemple de méthode projet


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 :

   CHERCHER([Personnes])   ` Afficher l'éditeur de recherches
   Si (OK=1)   ` L'utilisateur a cliqué sur OK (et non sur Annuler)
      Si (Enregistrements trouves ([Personnes])=0) ` Si aucun enregistrement n'est trouvé…
         AJOUTER ENREGISTREMENT([Personnes])
            ` Permettre à l'utilisateur d'ajouter un enregistrement
      Fin de si            
   Fin de si    ` 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 4e Dimension 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 :

   CHERCHER([Personnes])   ` Afficher l'éditeur de recherches

Le premier mot de la ligne, CHERCHER, est une commande. Une commande est un élément du langage de 4e Dimension — elle effectue une action. Dans ce cas, CHERCHER affiche l'éditeur de recherches, tout comme le fait la commande Recherche... du menu Sélection en mode Utilisation.

Les parenthèses signifient qu'un paramètre est passé à la commande CHERCHER. 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 CHERCHER ». 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é :

      Si (Enregistrements trouves ([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. Enregistrements trouves est une fonction — c'est-à-dire une commande qui retourne une valeur. Ici, Enregistrements trouves 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 4e Dimension.

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 :

         AJOUTER ENREGISTREMENT([Personnes])

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

   Fin de si    ` 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 en savoir plus...

Pour plus d'informations sur les méthodes objet et formulaire, reportez-vous à la description de la commande Evenement formulaire ainsi qu'au manuel Mode Structure de 4e Dimension.

Pour travailler avec les triggers, reportez-vous à la section Présentation des 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 Présentation des méthodes base et ses sous-sections.

Référence

Conditions et boucles, Constantes, Nommer les objets du langage 4D, Opérateurs, Pointeurs, Présentation des méthodes base, Présentation des tableaux, Présentation des triggers, Types de données, Variables.


4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant