Générer un code QR dans Crystal Reports
Comment générer un code QR dans Crystal Reports ?
Pour générer un code QR dans Crystal Reports, créez un nouveau champ de formule en utilisant la fonction BCSQRCodeEncodeCR de la bibliothèque UFL de Barcodesoft. Passez vos champs de base de données en arguments, placez le champ de formule sur votre zone de conception et appliquez la police de caractères BcsQRCode.
-
Étape 1 : Déterminer l'architecture (32 ou 64 bits) de SAP Crystal Reports et enregistrer la DLL
Déterminez l'architecture (le nombre de bits) de votre version de SAP Crystal Reports. Les versions SAP Crystal Reports 2008 à 2016 sont en 32 bits, tandis que SAP Crystal Reports 2020 et 2025 sont en 64 bits.
Pour Crystal Reports 64 bits (2020 / 2025) :
Exécutez l'invite de commandes en tant qu'administrateur et lancez :
cd "C:\Program Files\Common Files\Barcodesoft\FontUtil"
%systemroot%\System32\regsvr32.exe cruflbcs_x64.dll
Pour Crystal Reports 32 bits (2008–2016) :
Exécutez l'invite de commandes en tant qu'administrateur et lancez :
cd "C:\Program Files (x86)\Common Files\Barcodesoft\FontUtil"
regsvr32.exe cruflbcs.dll
-
Étape 2 : Localiser la fonction UFL Barcodesoft
Dans Crystal Reports, naviguez dans la hiérarchie de l'explorateur de fonctions : Liste des fonctions ⇒ Fonctions supplémentaires ⇒ UFL COM et .NET (u212com.dll) ⇒ UFL Visual Basic. Double-cliquez sur la fonction BCSQRCodeEncodeCR.
-
Étape 3 : Créer un nouveau champ de formule
Faites un clic droit sur Champs de formule et choisissez Nouveau... dans le menu contextuel. Nommez votre nouveau champ "BcsQRCode1", puis cliquez sur "Utiliser l'éditeur".
Après le processus d'encodage du code QR, même une chaîne courte peut contenir plus de mots de code que prévu. Comme Crystal Reports limite les champs de formule à 255 caractères, vous devez diviser le code QR encodé en plusieurs parties et les concaténer à l'intérieur d'un Objet texte avant d'appliquer la police. Utilisez la fonction suivante pour vérifier de combien de champs de formule vous aurez besoin :
BCSQRCodeFormulaNoForCR({Test.Data}) -
Étape 4 : Créer plusieurs champs de formule
Créez plusieurs champs de formule comme indiqué ci-dessous si la valeur renvoyée par
BCSQRCodeFormulaNoForCR({Test.Data})est supérieure à un. Ensuite, placez-les séquentiellement à l'intérieur du même Objet texte.BCSQRCodeEncodeCR({Test.Data}, 1, 0)
BCSQRCodeEncodeCR({Test.Data}, 2, 0)
BCSQRCodeEncodeCR({Test.Data}, 3, 0)
Détail des paramètres : Le 1er paramètre est la chaîne à encoder ; le 2e est l'index du segment ; le 3e est le niveau de correction d'erreurs (de 1 à 4 pour représenter L07, M15, Q25 et H30. Définissez-le sur 0 pour utiliser la correction d'erreurs M15 par défaut sélectionnée automatiquement).
-
Étape 5 : Insérer un objet texte dans votre rapport
Glissez-déposez tous les champs de formule créés dans cet objet texte, dans l'ordre. Vous verrez d'abord des codes hexadécimaux temporaires dans la mise en page de votre rapport. Ne vous inquiétez pas, c'est normal tant que la police de code-barres n'a pas été appliquée.
-
Étape 6 : Appliquer la police de caractères BcsQRCode
Faites un clic droit sur l'Objet texte et sélectionnez Mettre en forme l'objet dans le menu contextuel. Dans l'onglet Police, choisissez "BcsQRCode" comme famille de polices.
-
Étape 7 : Vérifier la génération du code QR
Cliquez sur le bouton OK. Les caractères de remplacement s'afficheront immédiatement sous la forme d'un code QR entièrement scannable dans la mise en page de votre rapport.
Comment générer des codes QR conformes à la norme GS1
Si votre projet nécessite un formatage conforme à la norme GS1 plutôt qu'un encodage de texte standard, utilisez la fonction dédiée BCSQRCodeEncodeCRGS1 répartie sur plusieurs formules :
BCSQRCodeEncodeCRGS1(str, 1, 0);
BCSQRCodeEncodeCRGS1(str, 2, 0);
BCSQRCodeEncodeCRGS1(str, 3, 0);
Spécifications des paramètres pour GS1 :
- 1er paramètre (str) : La chaîne de données brutes d'entrée. Assurez-vous que votre format regroupe strictement les éléments à l'aide de parenthèses avant et après chaque identifiant d'application (AI) — par exemple,
(17)190508(90)50921. La gestion de la DLL en arrière-plan par la bibliothèque insérera automatiquement les délimiteurs FNC1 nécessaires. - 2e paramètre : L'index séquentiel du segment de votre formule cible.
- 3e paramètre : La configuration du niveau de correction d'erreurs souhaité.