Voici un exemple plus détaillé des capacités de traitement de chaînes de Crystal Reports. Le mode de cryptage César est un code simple qui est traditionnellement attribué à Jules César. Dans ce code, chaque lettre d'un mot est remplacée par la lettre qui est située 5 caractères plus loin dans l'alphabet. Par exemple, "Rive" devient "Wnaj". Notez que "v" est remplacé par "a" ; puisqu'il n'y a pas 5 caractères après le "v" dans l'alphabet, on recommence à partir du début. Voici une formule qui applique le mode de cryptage de César au champ {Clients.NOM DU CLIENT} de la base de données Xtreme :
//The Caesar cipher
//The input string to encrypt
Local StringVar inString := {Customer.CUSTOMER_NAME};
Local NumberVar shift := 5;
Local StringVar outString := "";
Local NumberVar i;
For i := 1 To Length(inString) Do
(
Local StringVar inC := inString [i];
Local StringVar outC;
Local BooleanVar isChar :=
LowerCase(inC) In "a" To "z";
Local BooleanVar isUCaseChar :=
isChar And (UpperCase (inC) = inC);
inC := LCase(inC);
If isChar Then
(
Local NumberVar offset :=
(Asc(inC) + shift - Asc("a")) Mod
(Asc("z") - Asc("a") + 1);
outC := Chr(offset + Asc("a"));
If isUCaseChar Then outC := UpperCase(outC)
)
Else
outC := inC;
outString := outString + outC
);
outString
Dans l'exemple ci-dessus, une expression If est imbriquée dans le bloc d'expressions de la boucle For. Cette expression If est chargée des détails précis relatifs au décalage d'un seul caractère. Par exemple, les lettres sont traitées différemment de la ponctuation et des espaces. En particulier, la ponctuation et les caractères ne sont pas codés. Une remarque générale à ce point est que les structures de contrôle peuvent être imbriquées dans d'autres structures de contrôle et que plusieurs expressions peuvent être incluses dans les blocs d'expressions entre parenthèses des autres structures de contrôle.