Exemple 1
Supposons que vous vouliez inverser la chaîne {Clients.NOM DU CLIENT}. Par exemple, "Cyclistes urbains" devient "sniabru setsilcyC".
//Reverse a string version 1
Local StringVar str := "";
Local NumberVar strLen :=
Length ({Customer.CUSTOMER_NAME});
Local NumberVar i;
For i := 1 To strLen Do
(
Local NumberVar charPos := strLen - i + 1;
str := str + {Customer.CUSTOMER_NAME}[charPos]
);
str
Examinez comment fonctionne cette formule en supposant que la valeur actuelle du champ {Clients.NOM DU CLIENT} soit "Air propre". La longueur de "Air propre" est affectée à la variable strLen, à savoir 10. La variable i est une variable de comptage de boucle For car sa valeur change à chaque itération de la boucle For. En d'autres termes, elle est utilisée pour compter les itérations de la boucle. La boucle For va exécuter 10 itérations. La première fois, i est égal à 1, puis i est égal à 2, puis i est égal à 3, et ainsi de suite jusqu'à ce que i soit égal à 10. Au cours de la première itération, le dixième caractère de {Clients.NOM DU CLIENT} est ajouté à la variable chaîne vide str. Ainsi, str est égal à "e" après la première itération. Au cours de la deuxième itération, le neuvième caractère de {Clients.NOM DU CLIENT} est ajouté à str dont la valeur est désormais "er". Ceci continue jusqu'à la dixième itération après laquelle str est égal à, "erporp riA" qui est la chaîne inversée.
Exemple 2
Voici une version plus simple de la formule ci-dessus qui utilise une clause Step avec un pas négatif (step) égal à -1. Dans le cas de l'exemple de "Air propre", i est égal à 10 dans la première itération, à 9 dans la deuxième, à 8 dans la troisième, et ainsi de suite, jusqu'à ce que i soit égal à 1 dans la dernière itération.
//Reverse a string version 2
Local StringVar str := "";
Local NumberVar strLen :=
Length ({Customer.CUSTOMER_NAME});
Local NumberVar i;
For i := strLen To 1 Step -1 Do
(
str := str + {Customer.CUSTOMER_NAME}[i]
);
str
Exemple 3
La version la plus simple consiste à utiliser la fonction intégrée StrReverse :
//Reverse a string version 3
StrReverse ({Customer.CUSTOMER_NAME})
Les fonctions de chaînes intégrées dans Crystal Reports peuvent gérer de nombreuses applications de traitement de chaînes qui sont habituellement gérées au moyen de boucles For ou d'autres types de boucles. Cependant, les boucles For apportent la plus grande souplesse en matière de traitement de chaînes et également de la puissance dans le traitement de tableaux, ce qui peut s'avérer essentiel si les fonctions intégrées ne couvrent pas l'application envisagée.