0

6 La navigation dans le manuel de Kentika est réservée aux utilisateurs identifiés



Quelques principes de programmation

Programmation : variables et rubriques

Avertissement

Ce document n'a pas pour vocation de faire un tour exhaustif de la programmation. Il rappelle quelques notions qui devront cependant ne jamais être négligées. Il faut aussi se rappeler que si l'on fait des fautes d'orthographe dans un texte, le lecteur comprendra quand même le sens. Si l'on fait une erreur dans un script, la machine pourra provoquer une "fin de programme".

Si vous n'avez jamais fait de programmation, sur une base de test, vous pouvez vous essayer à réaliser quelques scripts... C'est toujours très gratifiant de constater que l'on a réussi à faire "obéir" sa machine ! Lorsque tout est OK, vous pouvez passer votre script en "production" c'est à dire en fonctionnement normal dans votre application.

Les données

Type

Chaque information, qu'elle soit dans la base de données ou dans une variable, a un type bien précis qu'il convient de toujours respecter :

  • Alphanumérique : peut contenir toute lettre de l'alphabet, des chiffres et des signes de ponctuation. A une longueur déterminée (qu'il convient de connaître avant de procéder à une affectation) ;
  • Texte : idem alphanumérique, peut contenir jusqu'à 32000 caractères ;
  • Entier : peut contenir des valeurs numériques entières comprises entre -32000 et +32000 ;
  • Entier long : idem mais valeurs possibles comprises entre -2 milliards et +2 milliards ;
  • Numérique : accepte des chiffres après la virgule ;
  • Date : date uniquement ;
  • Heure : temps ;
  • Booléen : deux valeurs possibles : vrai ou faux ;
  • Image : image (voir la documentation 4D pour plus d'informations sur les types d'images acceptés) ;
  • Blob : zone "réservoir" dans laquelle peut être placé tout type de données informatiques (exemple : une image) mais que seul le programme qui écrit saura relire en général. Ce type n'est que rarement utilisé dans les scripts.

Les enregistrements et les rubriques

Ce que votre application conserve, ce sont des enregistrements. Un enregistrement appartient à une table et est composé de rubriques. Chaque rubrique est prévue pour recevoir un type d'information qu'il faut impérativement respecter. Les rubriques décrites dans le chapitre consacré à la structure ne sont jamais manipulées en direct et font appel à une structure virtuelle avec des fonctions de lecture et écriture bien précises. Par contre, les rubriques des tables de gestion peuvent être manipulées en direct (exemple : [Emprunt]Date_limite:=date du jour+5). Les tables de paramétrage comportent bien souvent des rubriques dont le contenu est stocké en xml. Dans ce cas également, il y des ordre précis pour lire et écrire une donnée dans une rubrique xml (qui, au sens type, est en fait une rubrique Texte).

Les variables

Les variables sont des "réservoirs" dans lesquels on va pouvoir placer des données. Lorsque la procédure, dans laquelle une variable est appelée, se termine, le contenu de la variable est définitivement perdu. Dans les scripts que vous écrivez, vous devez utiliser des variables qui existent déjà dans l'application.

Nomenclature

Les noms de variables commencent par une lettre qui caractérise leur contenu (ceci n'est pas une obligation imposée par 4D mais une convention utilisée dans le logiciel) : T.. = texte ; E.. = entier ; L.. = entier long ; N.. = numérique ; D.. = date ; H.. = heure ; I.. = image ; B.. = blob ; H.. = heure.

Exemple : TCom1 est une variable texte

Syntaxe d'affectation de valeur

Le signe d'affectation du langage 4D est :=

Exemple : après l'exécution de la formule suivante :

TCom1:="bonjour"

La variable dont le nom est TCom1 contiendra la chaîne de caractères "bonjour"

La syntaxe pour exprimer un contenu dépend du type.

Pour les variables alphanumérique ou texte, la valeur est entre apostrophes doubles :

TCom1:="hello"

Pour les variables entier, entier long ou numérique, la valeur est indiquée en direct :

Ex:=21

Nx:=12,81

Pour les variables de type date, la valeur est indiquée entre des !

Dx:=!01/12/1987!

Pour les variables de type heure, la valeur est indiquée entre des ?

Hx:=?12:00:00?

Pour les autres types, on ne peut faire d'affectation directe.

On peut transférer le contenu d'une variable (ou d'une rubrique) dans une autre variable.

Exemple : si la variable TCom2 contient la valeur "bonjour" et que l'on écrit :

TCom1:=TCom2

Après exécution, la variable TCom1 vaudra "bonjour" (comme la variable TCom2)

Type et fonctions

Les fonctions ont aussi un résultat qui a un type précis. Il est impératif de connaître ce type avant d'appeler une fonction. Ainsi la fonction date du jour renvoie un résultat de type date que l'on ne peut placer que dans une variable ou une rubrique de type date.

Conversions

Il est possible de convertir le contenu d'une variable en un contenu d'un type différent.

Du type vers le type fonction exemple

alpha entier num Ex:=num (TCom1)

entier alpha chaine TCom1:=chaine (Ex)

alpha date date Dx:=date (TCom1)

date alpha chaine TCom1:=chaîne (Dx)

heure alpha chaine heure TCom1:=chaîne heure (Hx)

alpha heure heure Hx:=heure (TCom1)

 

Opérations sur les alpha

Concaténation : +

Exemple : si TCom1 contient "Bonjour" et que TCom2 contient "à vous"

L'affectation suivante :

TCom3:=TCom1+ " "+ TCom2

fait que TCom3 vaudra "bonjour à vous"

Sous chaine : Permet d'extraire une partie d'une chaîne de caractères

Exemple : si TCom1 contient "bonjour à vous", l'affectation suivante :

TCom2:=Sous chaîne (TCom1;4;2)

fait que TCom2 vaudra "jo" (2 caractères à partir du 4ème caractère)

TCom2:=Sous chaîne (TCom1;4)

fait que TCom2 vaudra "jour à vous" (à partir du 4ème caractère et jusqu'à la fin de la chaîne)

Position : permet de connaître la position d'une chaîne dans une autre (si elle est présente)

Exemple : si TCom1 contient "bonjour à vous", l'affectation suivante :

Ex:=position ("jo";TCom1)

fait que Ex prendra la valeur 4

Ex:=position ("jos";Tcom1)

fait que Ex prendra la valeur 0 car la chaîne jos n'est pas trouvée dans TCom1

Remplacer chaine : permet de remplacer une chaîne de caractère par une autre

Exemple : si TCom1 contient "bonjour à vous", l'affectation suivante :

TCom2:=remplacer chaîne (TCom1;"jour";"soir")

fait que TCom2 prendra la valeur "bonsoir à vous"

TCom2:=remplacer chaîne (TCom1;"o";"XXX")

fait que TCom2 prendra la valeur "bXXXnjXXXur à vXXXus"

TCom2:=remplacer chaîne (TCom1;"o";"XXX";1)

fait que TCom2 prendra la valeur "bXXXnjour à vous". Le paramètre 1 en fin d'expression indique que l'opération ne doit être effectuée qu'une seule fois

Autres opérations

Le langage 4D offre de nombreuses options de manipulations. Seules les plus couramment utilisées dans les scripts ont été indiquées ci-dessus. Pour plus d'informations, consultez plus particulièrement les chapitres suivants :

Présentation du langage

Variables

Booléens

Chaînes de caractères

Dates et heures

Opérateurs

Tableaux