Sintaxis de las expresiones |
Las expresiones son usadas para calcular valores numéricos, cadenas o valores lógicos ("verdadero" o "falso"). Hay varios operadores y funciones disponibles para esto, que dependen del lenguaje de programación ("Pascal" en éste caso), que pueden ser usadas para hacer muchas clases de cálculos. Se puede operar sobre campos de datos, por ejemplo calcula el impuesto de una cantidad dada, o mezcla dos campos de datos en una sola cadena. Tenga en cuenta que si la expresión es una de las propiedades de una banda del informe, el resultado de la expresión debe ser un valor lógico. Sólo la banda de grupo esperará como resultado una cadena o un número, según sea el campo de la expresión del elemento.
Composición de expresiones
El evaluador de expresiones sólo trabaja con cuatro tipos de datos: Cadenas, Enteros, Flotantes y Booleanos. Los datos binarios y memo no son soportados en las expresiones. A continuación se muestra una lista de como son convertidos los campos de una base de datos a tipos de datos del informe:
Tipo de Dato Tipo de Campo Cadena Campos de cadena, fechas y tiempos Entero Enteros cortos, bytes y enteros Flotante Flotantes y monetarios Booleano Booleanos (lógicos)
La sintaxis de una expresión se parece enormemente al Object Pascal. He aquí una lista de operadores soportados:
Operador Descripción + Suma - Resta * Multiplicación / División () Paréntesis And Y Lógico Or O Lógico Not NO Lógico = Igual < Menor que > Mayor que <= Menor o igual que >= Mayor o igual que <> Distinto
Las funciones estandar que se incluyen son:
Función Descripción Date Devuelve la fecha actual como una cadena Time Devuelve el tiempo actual como una cadena Str(Número) Convierte el argumento numérico a una cadena Copy(Str,s,l) Devuelve la subcadena de 'Str' (comenzando desde el caracter en la posición 's', y tomando un máximo de 'l' caracteres) Int(Número) Devuelve la parte entera de un número Frac(Número) Devuelve la parte fraccionaria de un número If (Expr, r1, r2) Devuelve 'r1' or 'r2' dependiendo de la expression Boolean 'expr' TypeOf(Expr) Devuelve el tipo de dato de 'expr' Sqrt(Número) Devuelve la raíz cuadrada de un número True Valor lógico verdadero False Valor lógico falso Sum(Expr) Devuelve la suma de 'expr' Count Devuelve el número de entradas Min(Expr) Devuelve el menor valor de 'expr' Max(Expr) Devuelve el mayor valor de 'expr' Average(Expr) Extrae una media de 'expr'
Usando campos de bases de datos en las expresiones
Cualquier campo referenciado en cualquiera de las tablas o querys referenciadas en el informe puede ser incluido dentro de la expresión. Los nombres de los campos son referenciados únicamente por sus nombres de campo (por ejemplo 'Nombre') o por el nombre de la tabla seguido por un punto y el campo del nombre (por ejemplo Clientes.Nombre). Si no se especifica un nombre de tabla el informe buscará el campo en todas las Fuentes de datos disponibles y utilizará el primero que encuentre.
La actual versión del evaluador de expresiones no soporta campos de nombre con caracteres especiales tales como blancos, '/', puntos, signos de dolar y similares.
Usando cadenas en las expresiones
Las cadenas en las expresiones deben de estar encerradas entre dobles comillas. La que sigue es una expresión admitida:
"Los ordenadores son geniales!"
La máxima longitud de las cadenas es de 255 caracteres.
Expresiones de ejemplo
Las que siguen son algunos ejemplos de expresiones:
Expresión Descripción 1 Constante entera, devuelve 1 1.5 Constante de punto flotante, devuelve 1.5 "Delphi" Cadena constante, devuelve "Delphi" como una cadena True Constante Lógica, devuelve True (Verdadero) 1 + 2 Cálculo numérico, devuelve 3 2 * (3 + 2.5) Cálculo numérico, devuelve 11 "Delphi" + " es genial" Cálculo de cadena, devuelve "Delphi es genial" Nombre Devuelve el valor del campo 'Nombre' si es que existe Clientes.Nombre Devuelve el valor del campo 'Nombre' de la tabla 'Clientes' Nombre + " " + Contacto Suma el campo 'Nombre', un blanco y el campo 'Contacto' ImporteTotal * IVA/ 00 Cálculo entre campos numéricos "Impreso "+ Date Cálculo entre campos de cadena "El importe total es " + str(ImporteTotal) Calculo entre campos de cadena y conversión de un numérico a una cadena if(ImporteTotal > 5000, "Gran pedido", "Pequeño pedido") Devuelve "Gran pedido" si ImporteTotal es mayor que 5000, en caso contrario devuelve "Pequeño pedido" if(Chequeo, "X", " ") Devuelve una 'X' si Chequeo es True (Verdadero)
Componer expresiones visualmente
Las expresiones pueden ser directamente tecleadas en la correspondiente línea de edición, o puede pulsar sobre el botón ".." a la derecha de la línea de edición para mostrar el diálogo para construir expresiones. Se puede diseñar visualmente la expresión con el ratón. Si alguna de las funciones usadas tiene parámetros, como "Copy" o "Sum", aparecerá otro diálogo para definir estos parámetros de forma separada. |