Aller au contenu principal

Principes de base

Langage RAP

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 :

Éléments non supportés
  • les classes
  • les tableaux
  • les enregistrements
  • les types énumérés

Types de données

Types disponibles

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

Types de donnéesDescription
Booleanpour stocker une valeur qui ne prend que 2 états True ou False
Currencypour stocker un nombre de type monétaire avec 4 décimales
Doublepour stocker un nombre à virgule flottante avec une précision pouvant aller jusqu'à 15 décimales
Extendedpour stocker un nombre à virgule flottante avec une précision pouvant aller jusqu'à 19 décimales
Integerpour stocker un nombre entier (sans décimales)
Singlepour stocker un nombre à virgule flottante avec une précision pouvant aller jusqu'à 7 décimales
Charpour stocker un seul caractère
Stringpour stocker une chaîne de caractères
Datepour stocker une date sans l'heure
DateTimepour stocker une date avec l'heure
Timepour stocker l'heure
Colorpour stocker une couleur
Variantpour stocker une donnée sans la typer

Opérateurs

Opérateurs disponibles

Nous avons les opérateurs suivants :

ActionOpérateur
pour assigner une valeur:=
pour faire des associations de type Booleanand, 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

Tests et conditions

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 :

```Delphi
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;