Voici un exemple plus achevé des capacités de traitement de chaîne 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". Remarquez que le "v" a été remplacé par "a". Puisqu'il n'y a pas 5 caractères après le "v" dans l'alphabet, on recommence depuis le 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.mdb.
Rem Mode de cryptage de César Dim chaîneEntrée 'chaîne d'entrée à crypter chaîneEntrée = {Clients.Nom du client} Dim déplacement déplacement = 5 formula = "" Dim i For i = 1 To Len(chaîneentrée) Dim cEntrée, cSortie cEntrée = Mid(chaîneentrée, i, 1) Dim car, carMaj car = LCase(cEntrée) In "a" To "z" carMaj = car And (UCase (cEntrée) = cEntrée) cEntrée = LCase(cEntrée) If Car Then Dim décalage décalage = (Asc(cEntrée) + déplacement - Asc("a")) Mod _ (Asc("z") - Asc("a") + 1) cSortie = Chr(décalage + Asc("a")) If CarMaj Then cSortie = UpperCase(cSortie) Else cSortie = cEntrée End If formula = formula & cSortie Next i
Dans l'exemple ci-dessus, une instruction If sur plusieurs lignes est imbriquée dans le bloc d'instructions de la boucle For/Next. Cette instruction 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. Les structures de contrôle peuvent être imbriquées dans d'autres structures de contrôle. Par ailleurs, il est possible d'inclure plusieurs instructions dans le bloc d'instructions d'une structure de contrôle.