Generar código QR en Crystal Reports
¿Cómo generar un código QR en Crystal Reports?
Para generar un código QR en Crystal Reports, cree un nuevo campo de fórmula utilizando la función BCSQRCodeEncodeCR de la biblioteca UFL de Barcodesoft. Pase sus campos de base de datos como argumentos, coloque el campo de fórmula en su lienzo de diseño y aplique la familia de fuentes BcsQRCode.
-
Paso 1: Determinar la arquitectura de bits de SAP Crystal Reports y registrar la DLL
Determine la arquitectura de bits de su versión de SAP Crystal Reports. Las versiones de SAP Crystal Reports desde la 2008 hasta la 2016 son de 32 bits, mientras que SAP Crystal Reports 2020 y 2025 son de 64 bits.
Para Crystal Reports de 64 bits (2020 / 2025):
Ejecute el Símbolo del sistema como administrador y ejecute:
cd "C:\Program Files\Common Files\Barcodesoft\FontUtil"
%systemroot%\System32\regsvr32.exe cruflbcs_x64.dll
Para Crystal Reports de 32 bits (2008–2016):
Ejecute el Símbolo del sistema como administrador y ejecute:
cd "C:\Program Files (x86)\Common Files\Barcodesoft\FontUtil"
regsvr32.exe cruflbcs.dll
-
Paso 2: Localizar la función UFL de Barcodesoft
En Crystal Reports, navegue a través de la jerarquía del explorador de funciones: Lista de funciones ⇒ Funciones adicionales ⇒ UFLs COM y .NET (u212com.dll) ⇒ UFLs de Visual Basic. Haga doble clic en la función BCSQRCodeEncodeCR.
-
Paso 3: Crear un nuevo campo de fórmula
Haga clic derecho en Campos de fórmula y elija Nuevo... en el menú contextual. Asigne a su nuevo campo el nombre de "BcsQRCode1", luego haga clic en "Usar editor".
Después del proceso de codificación del código QR, incluso una cadena corta podría contener más palabras de código de las esperadas. Debido a que Crystal Reports limita los campos de fórmula a 255 caracteres, debe dividir el código QR codificado en partes separadas y concatenarlas dentro de un Objeto de texto antes de aplicar la fuente. Utilice la siguiente función para comprobar cuántos campos de fórmula necesitará:
BCSQRCodeFormulaNoForCR({Test.Data}) -
Paso 4: Crear múltiples campos de fórmula
Cree múltiples campos de fórmula como se indica a continuación si el valor devuelto por
BCSQRCodeFormulaNoForCR({Test.Data})es mayor que uno. Luego, colóquelos secuencialmente dentro del mismo Objeto de texto.BCSQRCodeEncodeCR({Test.Data}, 1, 0)
BCSQRCodeEncodeCR({Test.Data}, 2, 0)
BCSQRCodeEncodeCR({Test.Data}, 3, 0)
Desglose de parámetros: El primer parámetro es la cadena a codificar; el segundo es el índice del fragmento; el tercero es el nivel de corrección de errores (del 1 al 4 representa L07, M15, Q25 y H30. Establézcalo en 0 para la corrección de errores M15 predeterminada y seleccionada automáticamente).
-
Paso 5: Insertar un objeto de texto en su informe
Arrastre y suelte todos los campos de fórmula que creó en este objeto de texto en secuencia. Inicialmente verá códigos hexadecimales de respaldo en el diseño de su informe. No se preocupe; esto es normal porque aún no se ha aplicado la fuente del código de barras.
-
Paso 6: Aplicar el tipo de letra BcsQRCode
Haga clic derecho en el Objeto de texto y seleccione Formato de objeto en el menú contextual. En la pestaña Fuente, elija "BcsQRCode" como su familia de fuentes.
-
Paso 7: Verificar la generación del código QR
Haga clic en el botón Aceptar. Los caracteres de respaldo se representarán de inmediato como un código QR totalmente escaneable en el diseño de su informe.
Cómo generar códigos QR compatibles con GS1
Si su proyecto requiere un formato compatible con GS1 en lugar de la codificación de texto estándar, utilice la función dedicada BCSQRCodeEncodeCRGS1 en múltiples fórmulas divididas:
BCSQRCodeEncodeCRGS1(str, 1, 0);
BCSQRCodeEncodeCRGS1(str, 2, 0);
BCSQRCodeEncodeCRGS1(str, 3, 0);
Especificaciones de parámetros para GS1:
- Primer parámetro (str): La cadena de datos de entrada sin procesar. Asegúrese de que su formato agrupe estrictamente los elementos utilizando paréntesis antes y después de cada Identificador de aplicación (AI)—por ejemplo,
(17)190508(90)50921. El procesamiento de la DLL en segundo plano de la biblioteca insertará automáticamente los delimitadores FNC1 necesarios. - Segundo parámetro: El índice de segmento secuencial de su fórmula de destino.
- Tercer parámetro: La configuración del nivel de corrección de errores deseado.