Générer des QR Codes dans Crystal Reports
SAP Crystal Reports 2008 / 2011 / 2013 / 2016 sont en 32 bits.
SAP Crystal Reports 2020 / 2025 sont en 64 bits.
1.1 Si votre solution SAP Crystal Reports est en 64 bits, veuillez enregistrer le fichier 64 bits cruflbcs_x64.dll comme indiqué ci-dessous.
Faites un clic droit sur l'invite de commande et exécutez l'invite de commande en tant qu'administrateur.

Pour enregistrer la DLL 64 bits, veuillez saisir les commandes suivantes :
cd "C:\Program Files\Common Files\Barcodesoft\FontUtil"
%systemroot%\System32\regsvr32.exe cruflbcs_x64.dll
1.2 Si votre solution SAP Crystal Reports est en 32 bits, veuillez enregistrer le fichier 32 bits cruflbcs.dll comme indiqué ci-dessous.
Saisissez les commandes suivantes pour enregistrer le fichier 32 bits cruflbcs.dll :
cd "C:\Program Files (x86)\Common Files\Barcodesoft\FontUtil"
regsvr32.exe cruflbcs.dll

Si la fenêtre pop-up suivante apparaît, votre enregistrement a réussi.

2. Ouvrez votre rapport Crystal. Faites un clic droit sur Champs de formule (Formula Fields), choisissez "Nouveau..." (New...) dans le menu contextuel. Saisissez "qrcode1" dans la zone de texte Nom, puis cliquez sur "Utiliser l'éditeur" (Use Editor).
3. Après le processus d'encodage du QR Code, même une chaîne courte peut renvoyer plus de mots de code que ce à quoi vous vous attendez. Cependant, Crystal Reports n'autorise pas plus de 254 caractères dans un champ de formule. Par conséquent, nous devons diviser les mots de code du QR Code en différentes parties et les concaténer dans un Objet Texte (Text Object) avant d'appliquer la police BcsQRCode. Pour savoir combien de champs de formule sont nécessaires, vous utilisez la fonction suivante :
BCSQRCodeFormulaNoForCR({Data.Code})
4. Créez plusieurs champs de formule comme indiqué ci-dessous si les mots de code renvoyés sont supérieurs à 255. Ensuite, glissez-déposez-les séquentiellement dans le même Objet Texte.
Local stringVar codestr := "QRCode" + Chrw(13) + chrw(10) + {Test.Data};
BCSQRCodeEncodeCR({Test.Data}, 1, 1, 0, 0)
Local stringVar codestr := "QRCode" + Chrw(13) + chrw(10) + {Test.Data};
BCSQRCodeEncodeCR({Test.Data}, 2, 1, 0, 0)
Local stringVar codestr := "QRCode" + Chrw(13) + chrw(10) + {Test.Data};
BCSQRCodeEncodeCR({Test.Data}, 3, 1, 0, 0)
Le premier paramètre du champ de formule est la chaîne à encoder.
Le deuxième paramètre du champ de formule est l'index.
Le troisième paramètre du champ de formule est le niveau de correction d'erreurs. Sa valeur varie entre 1 and 4, ce qui représente séparément L07, M15, Q25 et H30. Lorsqu'il est défini sur la valeur par défaut 0, il correspond au niveau de correction d'erreurs M15.
Pour les utilisateurs de Girocode ou de l'European Payments Council (EPC) QR Code, veuillez définir les formules suivantes :
BCSQRCodeEncodeCR(str, 1, 1 )
BCSQRCodeEncodeCR(str, 2, 1)
BCSQRCodeEncodeCR(str, 3, 1)
Après chaque section de données, veuillez ajouter & "�a;". Cela sera interprété comme un caractère ASCII 0A.
Vous verrez des codes hexadécimaux dans votre rapport. Ne vous inquiétez pas ! Vous n'avez pas encore appliqué la police de caractères QR Code.
5. Faites un clic droit sur l'Objet Texte et choisissez "Format de l'objet" (Format Object) dans le menu contextuel. Choisissez ensuite "BcsQRcode" comme police de caractères pour l'Objet Texte.
6. Cliquez sur le bouton OK. Vous verrez le QR Code apparaître dans votre rapport.
7. Si vous souhaitez utiliser le GS1 QRCode dans votre rapport, veuillez utiliser la formule BCSQRCodeEncodeCRGS1.
BCSQRCodeEncodeCRGS1(str, 2, 0);
BCSQRCodeEncodeCRGS1(str, 3, 0);
Le premier paramètre est str. Vos données doivent être dans ce format avant que la DLL cruflbcs.dll ne les encode en tant que GS1-QRcode : (17)190508(90)50921. Veuillez mettre des parenthèses avant et après chaque identifiant d'application (AI). Le caractère FNC1 sera ajouté automatiquement pour vous lorsque cela est nécessaire.
Le deuxième paramètre est l'index de votre formule.
Le troisième paramètre est le niveau de correction d'erreurs.