3.1Editor de fórmulas (sintaxis Crystal/Basic)
Lo esencial en 30 segundos
- Una fórmula = un valor que falta: precio con IVA, margen, nombre completo, categoría calculada — creada en el editor de fórmulas, aparece como un campo para colocar en cualquier sección.
- Dos sintaxis, una sola elección: Crystal (histórica, la más documentada) o Basic (cercana a VB) — mismo resultado, pero una sola por informe para mantener la coherencia.
- Verificar, tipar, convertir: controlar siempre la sintaxis antes de usarla y vigilar el tipo devuelto (ToText, ToNumber) — mezclar texto y número sin conversión hace fallar la fórmula.
Minicaso hilo conductor — Farès calcula sus precios con IVA sin hoja de cálculo
Farès, controlador de gestión en Argel, vuelve a introducir cada mes los importes con IVA de sus facturas en una hoja de cálculo junto a su informe Crystal — fuente de errores y de tiempo perdido. Abre el editor de fórmulas, inserta el campo desde la lista y escribe {Commandes.MontantHT} * 1.19 (IVA argelino): el campo calculado aparece en el explorador, lo coloca en la sección Detalles, verifica la sintaxis, y el precio con IVA se calcula solo con cada actualización. Se acabó la doble introducción: el informe produce por sí mismo su valor faltante.
Este mismo caso vuelve en el curso, el esquema, el guion y el desafío 48h.
1. El editor de fórmulas: campos, operadores, funciones
Una fórmula es un cálculo o una lógica que USTED crea para producir un valor que no existe como tal en la base de datos: un importe con IVA, un margen, un nombre completo, una categoría. Se crea en el editor de fórmulas (Formula Workshop); el campo de fórmula aparece entonces en el explorador y se coloca en una sección como cualquier campo. El editor ayuda: lista de campos para insertar (anotados {table.champ}), lista de funciones por categoría (matemáticas, cadenas, fechas, condiciones) y operadores. Farès los elige en lugar de escribirlo todo a mano — menos errores de escritura en los nombres de campos.
Los bloques de una fórmula: las referencias de campos entre llaves ({Commandes.MontantHT}), los operadores (aritméticos + - * /, comparación = <> > < >= <=, lógicos And Or Not, concatenación + o &), las funciones integradas (Round, UpperCase, Year, If…Then…Else…) y los literales (números como 1.19, texto entre comillas, fechas entre # como #2026-01-01#). Ejemplo: el precio con IVA = {Commandes.MontantHT} * 1.19; una etiqueta = {Client.Nom} + " " + {Client.Prenom}.
2. Dos sintaxis, una verificación, un tipo
Crystal Reports propone DOS SINTAXIS a elegir: la sintaxis Crystal (histórica, propia de la herramienta, la más extendida en la documentación — el valor de la fórmula es la última expresión evaluada) y la sintaxis Basic (cercana a Visual Basic, se asigna el resultado a « formula = … »). Hacen lo mismo: por defecto, la sintaxis Crystal, porque allí se encuentran más ejemplos y se leen más fácilmente los informes de otros. Y nos atenemos a ella en todo el informe.
Dos reflejos antes de usar una fórmula. Primero VERIFICAR la sintaxis (botón de control): el editor señala paréntesis faltantes y errores. Después vigilar el TIPO: una fórmula devuelve un tipo preciso (número, texto, fecha, booleano); mezclar texto y número sin conversión provoca errores — se convierte con ToText, ToNumber. Una fórmula puede luego mostrarse, totalizarse, servir en un filtro o en un formato — y las fórmulas se combinan entre sí.
🔎 Ejemplo concreto — Precio con IVA y nombre completo, las dos primeras fórmulas
Farès escribe sus dos fórmulas básicas en sintaxis Crystal.
Precio con IVA (número): {Commandes.MontantHT} * 1.19
Nombre completo (texto): {Client.Nom} + " " + {Client.Prenom}
→ verificar la sintaxis con el botón, colocar cada campo en la sección deseada.
Lectura: un cálculo y una concatenación cubren ya lo esencial de las necesidades habituales.
Lección: insertar los campos desde la lista evita errores de escritura.
Vocabulario de la sección
- Fórmula
- Cálculo o lógica creado por el usuario para producir un valor ausente de la base de datos (precio con IVA, margen, nombre + apellido, categoría). Creada en el editor, colocada como un campo.
Ejemplo sencillo: El precio con IVA de Farès: {Commandes.MontantHT} * 1.19.
Lo que no es: una reintroducción manual de los precios con IVA en una hoja de cálculo al lado.
Reflejo: en cuanto falte un valor, fabricarlo como fórmula.
- Editor de fórmulas (Formula Workshop)
- El taller de escritura de fórmulas: listas de campos ({table.champ}), de funciones por categoría y de operadores, con verificación de sintaxis.
Ejemplo sencillo: Farès inserta allí {Client.Nom} desde la lista.
Lo que no es: escribir los nombres de campos a mano, fuente de errores.
Reflejo: insertar siempre desde las listas propuestas.
- Sintaxis Crystal frente a Basic
- Dos lenguajes a elegir para la misma fórmula: Crystal (histórica, la más extendida) y Basic (cercana a Visual Basic, « formula = … »).
Ejemplo sencillo: Farès escribe todo en Crystal para mantener la coherencia.
Lo que no es: mezclar las dos sintaxis en un mismo informe.
Reflejo: Crystal por defecto, una sola sintaxis por informe.
- Bloques de una fórmula
- Referencias de campos ({table.champ}), operadores (aritméticos, comparación, And/Or/Not, concatenación), funciones integradas, literales (números, « texto », #fechas#).
Ejemplo sencillo: {Client.Nom} + " " + {Client.Prenom}.
Lo que no es: un cálculo copiado a mano fuera del informe.
Reflejo: montar bloque por bloque, y luego verificar.
- Tipo de la fórmula
- Una fórmula devuelve un tipo preciso (número, texto, fecha, booleano); mezclar los tipos sin conversión provoca errores.
Ejemplo sencillo: ToText({Commandes.Montant}) para mostrar un número en una etiqueta.
Lo que no es: sumar un texto y un número esperando que « cuele ».
Reflejo: convertir explícitamente con ToText, ToNumber.
En la práctica — Escribir una primera fórmula
- Abra el editor de fórmulas y cree un cálculo sencillo (p. ej. precio con IVA = {MontantHT} * 1.19) insertando el campo desde la lista.
- Pruebe una concatenación de texto (p. ej. {Client.Nom} + " " + {Client.Prenom}) y recorra las funciones por categoría (matemáticas, texto, fechas).
- VERIFIQUE la sintaxis (botón de control): corrija los errores señalados antes de usar la fórmula.
- Coloque el campo de fórmula (ya en el explorador) en una sección como un campo normal; vigile el TIPO (convertir con ToText/ToNumber si hace falta).
Guion listo para decir — explicar su fórmula al jefe de contabilidad (30 s)
« Los precios con IVA ya no se vuelven a introducir: he creado un campo calculado — importe sin IVA multiplicado por 1,19 — directamente en el informe, en sintaxis Crystal, verificado por el editor. Se recalcula solo con cada actualización, sin doble introducción ni error de copia. »
Para decir en la reunión de cierre; mostrar la fórmula y el botón de verificación.
Plantilla copiar-pegar — primeras fórmulas (sintaxis Crystal)
// Precio con IVA (número)
{Commandes.MontantHT} * 1.19
// Nombre completo (texto)
{Client.Nom} + " " + {Client.Prenom}
// Margen (número)
{Ventes.PrixVente} - {Ventes.Cout}
// Equivalente Basic : formula = {Commandes.MontantHT} * 1.19
Independiente
Dos fórmulas (un cálculo, una concatenación) automatizan lo que usted volvía a introducir a mano.
PYME en Argel
Farès calcula sus precios con IVA al 19 % en el informe: se acabó la hoja de cálculo paralela.
Equipo de proyecto
Imponer la sintaxis Crystal única en el informe para que cada uno relea las fórmulas de los demás.
Principiante
Esta semana: una fórmula de cálculo + una de texto, sintaxis verificada con el botón.
✓ Buenas prácticas
- Inserte los campos desde la lista del editor en lugar de escribirlos (cero errores de escritura).
- Elija la sintaxis Crystal por defecto y manténgala en todo el informe.
- Verifique sistemáticamente la sintaxis antes de usar una fórmula, y vigile su tipo.
✗ Errores frecuentes
- Mezclar sintaxis Crystal y Basic en un mismo informe: nadie se aclara.
- Escribir los nombres de campos a mano en lugar de insertarlos (errores invisibles).
- Sumar texto y número sin conversión: la fórmula falla en lugar de « apañárselas ».
Puntos clave
- Una FÓRMULA produce un valor ausente de la base de datos (precio con IVA, margen, nombre + apellido, categoría); creada en el editor, se coloca como un campo.
- Dos SINTAXIS (Crystal, la más extendida / Basic, cercana a VB): atenerse a UNA SOLA por coherencia.
- Bloques: campos {table.champ}, operadores, funciones por categoría, literales (números, « texto », #fechas#).
- VERIFICAR SIEMPRE la sintaxis y vigilar el TIPO (ToText, ToNumber para convertir).
Desafío 48h — aplíquelo mañana
Cree 1 fórmula de cálculo (precio con IVA o margen) + 1 fórmula de texto (nombre completo), sintaxis verificada, colocadas en su informe real.
- Creo un campo calculado en lugar de volver a introducir a mano.
- Escribo en una sola sintaxis (Crystal por defecto).
- Verifico la sintaxis y convierto los tipos explícitamente.
Preguntas frecuentes
Sintaxis Crystal o Basic: ¿cuál elegir, y cómo empezar?
Las dos sintaxis producen el MISMO resultado; la elección es cuestión de coherencia y de familiaridad. La sintaxis CRYSTAL es el lenguaje histórico, propio de Crystal Reports — la más EXTENDIDA: la mayoría de la documentación y de los informes existentes la utiliza, y el valor de la fórmula es la última expresión evaluada. La sintaxis BASIC es cercana a Visual Basic (« formula = … »), más familiar si conoce VB/VBA. Por defecto, elija Crystal (más ejemplos, lectura de los informes de otros) y mantenga la COHERENCIA en todo el informe. Para empezar: empiece SENCILLO (un cálculo aritmético, una concatenación), inserte los campos desde la lista, recorra las funciones por categoría, y VERIFIQUE la sintaxis sistemáticamente — el editor señala paréntesis faltantes y errores.
¿Para qué sirven concretamente las fórmulas, y qué cálculos habituales realizar?
Las fórmulas producen valores y lógica ausentes de la base de datos, e intervienen en todas partes: CALCULAR valores derivados (precio con IVA = sin IVA × tasa, margen = venta − coste, descuento, cantidad × precio, porcentaje); COMPONER texto (nombre + apellido, dirección en una línea, « Factura n.º » + número); CATEGORIZAR con If…Then…Else (3-4) para agrupar después (3-5); alimentar FILTROS (atención al lado servidor, 2-3); pilotar el FORMATO CONDICIONAL (3-2) y el OCULTAMIENTO de secciones (2-5); manipular las FECHAS (año, mes, diferencias); gestionar los VALORES NULOS. Cálculos de gestión típicos de Farès: precio con IVA al 19 %, margen por línea (venta − coste), total de línea (cantidad × precio unitario), parte en % (parte / total × 100).
¿Dónde se crea un valor calculado (precio con IVA, margen) en Crystal Reports?