Crystal Reports  

Exemple de boucles For/Next (syntaxe Basic)

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.

Voir aussi

Sortie de boucles For/Next