4D v16

Présentation des variables

Accueil

 
4D v16
Présentation des variables

Présentation des variables    


 

 

Bonjour,

dans ce chapitre nous allons apprendre à définir les types de variables, comprendre leur portée et donc leur cycle de vie et les bases de leur programmation.

Au cours des chapitres précédents, nous avons utilisé ponctuellement des variables (vNbRecords...). Voyons maintenant en quoi elles consistent, comment elles fonctionnent et, suivant leur définition, quelles sont les limites de leur utilisation.
Si nous comparons le fonctionnement de 4D à une entreprise, nous pouvons en déduire les points suivants :

  • Il y a plusieurs services dans l’entreprise qui réalisent chacun une tâche particulière, souvent indépendamment des autres services.
  • Chaque service est prévu pour réaliser un certain nombre de tâches dans un ordre donné.
  • Une tâche peut être interrompue car elle dépend du résultat d’un autre traitement.
  • Ce nouveau traitement utilisera probablement des informations provenant du traitement précédent, mais également des informations qui lui sont propres.

Si on traduit cela avec un exemple pratique :

  • L’entreprise a une usine de production, un service commercial et un service relations humaines.
  • Le service Paye centralise les heures réalisées par les autres services et réalise les paies, calcule le nombre de jours de congés, etc.
  • Le traitement de la paie implique de connaître le taux des heures supplémentaires ainsi que les différents taux de cotisations. Ces informations sont fournies par le service juridique qui tient à jour la documentation.

Et maintenant faisons le parallèle avec 4D :

  • 4D peut gérer plusieurs process simultanément (impression, visualisation du contenu de plusieurs tables, palettes d’outils, imports, serveur Web, réponse à des Web services, etc ...)
  • La méthode qui s’exécute dans chaque process peut comporter plusieurs phases.
  • Elle peut faire appel à d’autres méthodes au sein du même process (collègues du même service), ou demander des informations à un autre process (collègue dans un autre service)

Pour chacun des cas nécessaires de communication, nous disposons de variables adaptées :

  • Pour disposer d’informations accessibles (en lecture écriture) à tous les process, nous utiliserons des variables interprocess. Pour que 4D les considère comme telles, il faut les préfixer par les symboles <>
    (Ex : <>DateDuJour, <>TableauTaux- Horaires, etc.)
  • En cours d’exécution dans un process, une méthode peut avoir besoin d’une information pour elle seule. Dans ce cas, ce sera une variable locale, reconnue dans 4D par le symbole $ qui la préfixe
    (Ex : $Compteur, $ZoneTampon, etc.)
  • Toutes les autres variables (sans préfixe) sont des variables process, utilisables par plusieurs méthodes dans un même process.
    (Ex : vNbRecords, ...)

La dernière remarque concernant le besoin d’information provenant du service juridique permet d’introduire la notion de communication entre les process.

Il est en effet possible avec 4D de commander la lecture ou l’écriture de variables d’un process vers un autre (et même d’un poste client vers le serveur). (LIRE VARIABLE PROCESS et ECRIRE VARIABLE PROCESS)

Pour prendre un autre exemple de la vie courante, dans une école :

  • la variable locale est le cahier de l’élève (ou sa feuille de brouillon) : lui seul la voit, peut écrire dessus et la relire
  • la variable process est le tableau noir, utilisable et visible par tous les élèves d’une même classe, chacun pouvant lire, écrire, effacer le tableau
  • la variable interprocess est le panneau d’affichage à l’entrée de l’école sur lequel figureront les résultats des examens (tous les élèves de toutes les classes ainsi que tous les professeurs et le proviseur y auront accès)

La communication interprocess consiste pour un professeur à venir lire ce qui est écrit ou écrire sur le tableau de la classe (variable process) de son collègue ou sur le panneau d’affichage de l’école (variable interprocess).

La portée des variables expliquée, nous pouvons en détailler le mode de fonctionnement.

Il existe deux types de variables dans 4D :

  • les variables simples (une seule valeur)
  • les tableaux (plusieurs valeurs).

Vous pouvez définir vos variables simples avec mêmes types que les champs (Texte, Entier long, Date, Heure, BLOB ...) + le type Pointeur.
Les tableaux acceptent les mêmes types à l’exception des types BLOB et Heure.

Le cycle de vie d’une variable est le suivant :

Péroide de la vieVariable simpleTableauCommentaires
Naissance = InitialisationC_ENTIER LONG(NbJours)TABLEAU TEXTE(TabDates;0)En mode Unicode, les types Alpha et Texte sont identiques
INSERER LIGNES(TabDates;1)
TabDates{1}:=!06/05/2012!
Croissance = ValorisationNbJours:=25OU
AJOUTER A TABLEAU (TabDates;!06/05/2012!)
Compétances au service de la nationBoucle($i;1;NbJours)$DateDépart:=TabDates{1}+18Les variables sont en Lecture/Ecriture
"développement" = UtilisationFin de boucle
Mort = Effacement et libération de la mémoireEFFACER VARIABLE (NbJours)EFFACER VARIABLE(TabDates)La variable existe toujours, son contenu est réinitialisé

Voyons ceci avec un exemple :

Pour nommer vos variables, prenez l’habitude de respecter une règle afin de vous y retrouver.

  • Soit vous utilisez une nomenclature “dure”
  • soit vous optez pour des noms de variables “parlants” et donc plus faciles à lire.

Pour commencer, je vous conseille des noms clairs et lisibles. Vous pourrez renommer vos variables ultérieurement grâce à la fonction de remplacement global de 4D.

Comme dans tout langage, les variables sont incontournables dans 4D. Vous devrez en user et en abuser.

Attention, l’essence même de certaines variables ne permet pas de les visualiser dans un formulaire :

Dans la vidéo précédente, nous avions utilisé une variable pour afficher le nombre d'enregistrements trouvés en fonction de la table sur laquelle on a effectué la recherche.
Il faut savoir qu'une variable est un espace en mémoire qu'on peut représenter par un objet dans un formulaire.

Nous allons donc créer un formulaire projet de test : "test variables" afin de comprendre comment fonctionnent les variable.

Créeons une première variable nommée v1 et que je rends non saisissable. Cette variable n'existe actuellement pas en mémoire, il y a juste une zone à l'écran qui représentera le contenu de la variable si toutefois il existe.

Nous allons donc :

  • mettre un bouton à côté qui permet de déclarer la variable. Nous typerons cette variable en entier long par exemple
  • puis un 2è bouton qui va permettre de valoriser la variable v1:=1500.
  • Par la suite, on peut effectuer un calcul avec cette variable en mémoire et afficher par exemple une ALERTE.

Nous allons afficher une alerte() qui attend un argument de type texte donc nous allons convertir la variable v1 après l'avoir multipliée par 12.

Testons maintenant le formulaire :

  • la variable v1 actuellement n'est pas vraiment définie
  • si nous la déclarons, puisque nous l'avons déclarée de type entier long, elle prend  une valeur par défaut à 0
  • on peut la valoriser
  • et ensuite on peut effectuer un calcul avec cette variable.

Voilà une première utilisation de variable simple.

Le principe serait le même avec :

  • une variable de type texte qu'on va appeler v2
  • là puisque ce sera une variable de type texte on va pouvoir afficher sa valeur 12 fois.
  • au passage faisons une concaténation de la variable + un espace et l'ensemble sera multiplié 12 fois.
  • "Hello" et ici ce sera une variable non pas de type entier long, mais de type texte.

Si nous testons le formulaire :

  • la variable v2 n'existe pas,
  • lorsqu'elle est déclarée elle contient une valeur vide.
  • nous pouvons la valoriser avec "Hello"
  • et utiliser la variable dans un calcul

4D dispose bien évidemment de nombreuses fonctions de traitement de chaine.

Prenons maintenant le cas d'un tableau.

  • nous allons l'afficher dans un popup menu qui s'appellera pop1
  • et de la même manière nous allons déclarer cet objet qui sera de type tableau
  • donc faire un tableau texte "Pop1" et nous indiquons le nombre de lignes du tableau, par exemple 3 lignes.
  • à partir de là le tableau existe en mémoire et pourra être représenté sur cet objet.
  • les minuscules/majuscules n'ont pas d'importance dans le langage de 4D.

Pour valoriser le tableau nous allons indiquer que :

  • la ième ligne (donc là en l'occurrence la 1ère ligne du tableau) vaut "bonjour"
  • que la 2è ligne du tableau vaudra "au revoir"
  • et que la 3è contiendra "à bientôt".

Quant à l'utilisation du tableau nous pouvons le faire sous cette forme là par exemple :

la 1ère valeur du tableau + un espace + la 2è valeur du tableau + la 3è.

Testons maintenant le résultat :

  • déclaration du tableau : Le tableau a bien 3 lignes vides
  • valorisation du tableau : "bonjour"  "au revoir"  "à bientôt"
  • utilisation du tableau : "bonjour espace au revoir espace à bientôt"

Voici de manière simple une présentation rapide de l'utilisation des variables.

 
 

 
PROPRIÉTÉS 

Produit : 4D
Thème : Présentation des variables
Nom intl. : Overview of variables

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

Autoformation ( 4D v16)