Aller au contenu

Principes de base

Le langage de programmation utilisé pour développer dans un modèle d'impression ReportBuilder est le langage RAP (Report Application Programming).

C'est un langage dérivé du langage Pascal Objet.

Les bases de ce langage sont reconnues dans ReportBuilder. Elles peuvent être trouvées dans l'onglet "Langage" de la boîte à outils en bas à droite :

Les éléments de Delphi qui ne sont pas supportés par ReportBuilder sont :

  • les classes
  • les tableaux
  • les enregistrements
  • les types énumérés

Types de données

Dans ReportBuilder, nous pouvons utiliser les types de données suivants :

Types de données Description
Boolean pour stocker une valeur qui ne prend que 2 états True ou False
Currency pour stocker un nombre de type monétaire avec 4 décimales
Double pour stocker un nombre à virgule flottante avec une précision pouvant aller jusqu'à 15 décimales
Extended pour stocker un nombre à virgule flottante avec une précision pouvant aller jusqu'à 19 décimales
Integer pour stocker un nombre entier (sans décimales)
Single pour stocker un nombre à virgule flottante avec une précision pouvant aller jusqu'à 7 décimales
Char pour stocker un seul caractère
String pour stocker une chaîne de caractères
Date pour stocker une date sans l'heure
DateTime pour stocker une date avec l'heure
Time pour stocker l'heure
Color pour stocker une couleur
Variant pour stocker une donnée sans la typer

Opérateurs

Nous avons les opérateurs suivants :

Action Opérateur
pour assigner une valeur :=
pour faire des associations de type Boolean and, not, or, xor
pour faire des calculs mathématiques -, +, *, /, div, mod
pour faire des relations <, <=, <>, =, >, >=
pour concaténer des chaînes de caractères +

Structures conditionnelles

On a accès à des structures conditionnelles du langage Pascal permettant de tester une donnée pour par exemple déclencher un calcul ou mettre un objet en forme.

La plus utilisé est "if...then...else", qui se traduit par "Si ma condition est vrai Alors on fait quelque chose Sinon on fait autre chose". Le "Sinon" n'est pas obligatoire mais il est fortement recommandé de prévoir un cas de retour.

On peut faire par exemple :

if Variable = 50 then


  Value := Variable \* 1.05


else


  Value := Variable \* 1.20;

Dans le cas où l'on aurait plusieurs opérations à faire entre chaque instruction, il faudra alors mettre un "begin...end" et mettre un point virgule à la fin de chaque ligne.

Par exemple :

if Variable = 50 then


begin


  Variable := Variable - 10;


  Value := Variable \* 1.05;


end


else


begin


  Variable := Variable - 5;


  Value := Variable \* 1.20;


end

On peut aussi enchaîner les tests avec plusieurs if.

Par exemple :

if Variable = 50 then


  Value := Variable \* 1.05


else if Variable = 40 then


  Value := Variable \* 1.10


else


  Value := Variable \* 1.20;

Pour tester plusieurs conditions, il faut les encadrer par des parenthèses et mettre un "and" (et) ou un "or" (ou) pour les enchaîner. Il n'est pas nécessaire de mettre une parenthèse quand la condition est sur un Booléen.

Par exemple :

if (Variable = 50) and (Variable = 60) then


  Value := Variable \* 1.05


else if Variable = 40 then


  Value := Variable \* 1.10


else


  Value := Variable \* 1.20;

Si on a plusieurs valeurs à tester au lieu d'enchaîner les if...then, on peut utiliser une structure case...of.

Par exemple :

case Variable of


  50 : Value := Variable \* 1.05;


  60 : Value := Variable \* 1.06;


  40 : Value := Variable \* 1.10;


  else Value := Variable \* 1.20


end

Boucles

En langage Delphi, une boucle est une structure de contrôle qui dirige des processus répétitifs dans un programme. Une boucle permet de répéter un certain nombre de fois un bloc de code.

Il existe trois structures pour faire une boucle :

  • for
  • repeat until
  • while

La boucle for spécifie à l'avance le nombre de répétition grâce a une variable de contrôle. Cette variable s'incrémentera ou se décrémentera suivant ce que l'on veut faire. Par exemple, on peut  faire une boucle qui fera 5 itérations comme ci-dessous :

for I := 1 to 5 do


begin


  ...


end;

La boucle while exprime une condition de continuation de la boucle. Les répétitions s'arrêtent quand la condition devient fausse. Par exemple, si on veut aller jusqu'à 5 itérations :

I := 1;


while I <= 5 do


begin


  ...


  I := I + 1;


end;

La boucle repeat until contient également une expression conditionnelle de contrôle mais la boucle se poursuit jusqu'a ce que la condition devienne vraie.

I := 1;


repeat


  ...


  I := I + 1;


until I = 5;