You are on page 1of 16

Crystal Reports para Visual Basic 21

C A P T U L O

Frmulas

Qu son las frmulas?


En muchos casos, los datos que desea que aparezcan en su informe ya existen en campos de las tablas de base de datos. Por ejemplo, para preparar una lista de pedidos simplemente necesita colocar los campos apropiados en su informe. Sin embargo, algunas veces necesita poner en el informe datos que no existen en ninguno de los campos. En esos casos necesita crear una frmula. Para crear frmulas, simplemente haga clic en el botn Insertar frmula de la barra de botones. Aparecer el cuadro de dilogo Editar frmula.
Figura 3.1 Editor de frmulas de Crystal Reports

Crystal Reports para Visual Basic 21

Filename: 86502594.doc Project: Traditional User's Guide Template Template: Author: Pablo Trillo Navarro Last Saved By: Carmen Revision #: 29 Page: 21 of 16 Printed: 12/26/96 14:24 A12/P12

Captulo 3 Frmulas

Utilice el Editor de frmulas para crear, probar y modificar su frmula. Nota Cuando hace doble clic en elementos de los cuadros de lista, Crystal Reports los introduce en la frmula en su totalidad, con los parntesis, signos de puntuacin y otros elementos sintcticos que el Editor de frmulas necesita para procesarlos correctamente. Si escribe una frmula manualmente, mediante el teclado, debe asegurarse de introducir dichos elementos sintcticos usted. Generalmente es ms seguro y rpido crear frmulas eligiendo elementos de los cuadros de lista. Nota La lista de registros del cuadro de dilogo Examinar datos de campo slo representa un subconjunto de los registros disponibles. Cuando termine de introducir su frmula, haga clic en el botn Aceptar. Crystal Reports comprobar la sintaxis de la frmula, cerrar el Editor de frmulas y, si dicha sintaxis es correcta, volver al informe. Coloque la frmula donde quiera que aparezca en su informe. He aqu algunos de los usos tpicos de las frmulas: crear campos calculados para agregar a su informe,
{detalle pedidos.PRECIO UNITARIO}*.85

Calcula un precio con un descuento del 15%. dar formato a texto de un informe,
UpperCase ({cliente.NOMBRE CLIENTE})

Cambia a maysculas todos los valores del campo Nombre cliente. Vea Funcin Uppercase en la Ayuda en pantalla de Crystal Reports. extraer una parte o partes de una cadena de texto,
{cliente.NOMBRE CLIENTE} [1]

Extrae la primera letra del nombre del cliente. Vea Operador de subndice en la Ayuda en pantalla de Crystal Reports. extraer parte de una fecha,
Month ({pedidos.FECHA PEDIDO})

Determina en qu mes se hizo un pedido. Estos ejemplos son tan slo una muestra. Si necesita realizar una manipulacin especial de datos, encontrar varias posibilidades de hacerlo con las frmulas de Crystal Reports.

Temas relacionados
Busque Funcin Count en la Ayuda en pantalla de Crystal Reports.
Crystal Reports para Visual Basic

Filename: 86502594.doc Project: Traditional User's Guide Template Template: Author: Pablo Trillo Navarro Last Saved By: Carmen Revision #: 29 Page: 22 of 16 Printed: 12/26/96 14:24 A12/P12

Captulo 3 Frmulas

Busque Funcin Distinct Count en la Ayuda en pantalla de Crystal Reports.

Crystal Reports para Visual Basic 23

Filename: 86502594.doc Project: Traditional User's Guide Template Template: Author: Pablo Trillo Navarro Last Saved By: Carmen Revision #: 29 Page: 23 of 16 Printed: 12/26/96 14:24 A12/P12

Captulo 3 Frmulas

Cmo se crean las frmulas; una introduccin al Editor de frmulas


El Editor de frmulas es un cuadro de dilogo que contiene todas las herramientas necesarias para crear y comprobar sus frmulas.
Figura 3.2 El Editor de frmulas de Crystal Reports

Mediante el Editor de frmulas puede combinar elementos para crear una frmula que funcione. Los tres cuadros de lista que hay en la parte superior del Editor de frmulas muestran los componentes principales de las frmulas.

Cuadro Campos
Muestra todos los campos que puede utilizar como argumentos de frmulas. Puede insertar campos en las frmulas de dos maneras: colocando el cursor en forma de I donde desee que aparezca el campo en el cuadro de texto Frmula, estableciendo el punto de insercin y haciendo doble clic en el campo deseado en el cuadro Campos, o colocando el cursor en forma de I donde desee que aparezca el campo en el cuadro de texto Frmula y escribindolo manualmente. Nota Asegrese de comprobar la correcta sintaxis en la utilizacin de campos en las frmulas. Si no incluye el nombre de archivo, omite el punto correspondiente o no enmarca el campo entre corchetes, Crystal Reports generar un mensaje de error del

Crystal Reports para Visual Basic

Filename: 86502594.doc Project: Traditional User's Guide Template Template: Author: Pablo Trillo Navarro Last Saved By: Carmen Revision #: 29 Page: 24 of 16 Printed: 12/26/96 14:24 A12/P12

Captulo 3 Frmulas

compilador que detalla su error. Busque Sintaxis, comprobar en frmulas en la Ayuda en pantalla de Crystal Reports.

Crystal Reports para Visual Basic 25

Filename: 86502594.doc Project: Traditional User's Guide Template Template: Author: Pablo Trillo Navarro Last Saved By: Carmen Revision #: 29 Page: 25 of 16 Printed: 12/26/96 14:24 A12/P12

Captulo 3 Frmulas

Cuadro Funciones
El cuadro Funciones muestra docenas de funciones incluidas en Crystal Reports. Estas funciones son procedimientos incorporados que devuelven valores. Todas las funciones disponibles se muestran en este cuadro junto con sus argumentos y ordenadas por su uso. Puede insertar funciones en las frmulas de la misma manera que los campos: mediante el cuadro Funciones, o escribindolas manualmente. Busque Campos, en frmulas en la Ayuda en pantalla de Crystal Reports. Nota Asegrese de revisar la correcta sintaxis en el uso de funciones de la frmula. Si una funcin tiene argumentos obligatorios, todos los argumentos deben introducirse tambin. Si no se introduce algn argumento requerido, Crystal Reports generar un mensaje de error del compilador de frmulas que detalla el error. Busque sintaxis, comprobar en frmulas en la Ayuda en pantalla de Crystal Reports.

Cuadro Operadores
El cuadro Operadores muestra los "verbos de accin" que puede utilizar en sus frmulas. Puede insertar operadores en las frmulas de la misma manera que los campos y las funciones: mediante el cuadro Operadores, o escribindolos manualmente. Busque Campos, en frmulas en la Ayuda en pantalla de Crystal Reports.

Cuadro Frmula
El cuadro de texto Texto de frmula es donde en realidad se introduce la frmula. Puede: escribir la frmula manualmente, mediante el teclado, elegir los componentes de la frmula en los cuadros Campos, Funciones y Operadores, o, combinar los dos mtodos, eligiendo algunos componentes en los cuadros de lista e introduciendo otras partes de la frmula manualmente.

Crystal Reports para Visual Basic

Filename: 86502594.doc Project: Traditional User's Guide Template Template: Author: Pablo Trillo Navarro Last Saved By: Carmen Revision #: 29 Page: 26 of 16 Printed: 12/26/96 14:24 A12/P12

Captulo 3 Frmulas

Para insertar texto y nmeros en las frmulas


Inserte texto y nmeros en las frmulas escribindolos directamente en el cuadro de texto Frmula. Tambin puede hacer clic en el botn Examinar datos de campo, resaltar el valor que desea insertar de la lista que aparezca y hacer clic en Pegar para colocar el valor en la frmula. Nota Asegrese de revisar la correcta sintaxis del texto y los nmeros en las frmulas. Busque sintaxis, comprobar en frmulas en la Ayuda en pantalla de Crystal Reports.

Otras convenciones de frmulas


A continuacin se describen los restantes elementos disponibles para su uso en la creacin de una frmula.

Otras frmulas
De la misma forma en que puede introducir campos en frmulas, puede introducir otras frmulas en frmulas. Crystal Reports realiza los clculos de la frmula insertada y utiliza despus el valor devuelto por la frmula referenciada de la misma manera en que utilizara cualquier otro valor. Por ejemplo, la frmula:
1*(2+4*6/3-7*12-8) +2*(2+4*6/3-7*12-8) +3*(2+4*6/3-7*12-8) +4*(2+4*6/3-7*12-8)= -820

incluye la expresin (2+4*6/3-7*12-8) repetida muchas veces. Si crea una frmula para la expresin repetida (@F = (2+4*6/3-7*12-8)) y a continuacin hace referencia a esa frmula en vez de introducir la expresin propiamente dicha, obtendr el mismo resultado.
1*{@F}+2*{@F}+3*{@F}+4*{@F} = -820

Cada vez que Crystal Reports vea la frmula @F, realizar el clculo de @F y devolver el valor -82, de la misma forma que la expresin que figura en la frmula (2+4*6/3-7*12-8) devuelve el valor -82. Busque Orden de precedencia en la Ayuda en pantalla de Crystal Reports.

Para insertar otras frmulas en frmulas


Puede insertar otras frmulas en sus frmulas de la misma manera que lo hace con los campos: mediante el cuadro Campos, o escribindolas manualmente.

Crystal Reports para Visual Basic 27

Filename: 86502594.doc Project: Traditional User's Guide Template Template: Author: Pablo Trillo Navarro Last Saved By: Carmen Revision #: 29 Page: 27 of 16 Printed: 12/26/96 14:24 A12/P12

Captulo 3 Frmulas

Busque Campos, en frmulas en la Ayuda en pantalla de Crystal Reports. Nota Asegrese de revisar la correcta sintaxis en el uso de campos de frmula en su frmula. Busque Sintaxis, comprobar en frmulas en la Ayuda en pantalla de Crystal Reports. Nota Una frmula no puede hacer referencia a s misma.

Valores de campos de grupo


Los valores de campos de grupo son valores que resumen un grupo (un subtotal de grupo, un promedio, etc.). Puede utilizarlos en frmulas por muchas razones. Una razn tpica sera hallar el porcentaje en que cada grupo contribuye al total general (por ejemplo, en qu porcentaje contribuye la Regin Oeste a la cifra total de ventas $2,300,000 de EE.UU.?).

Para insertar valores de campos de grupo en frmulas


Puede insertar valores de campos de grupo en sus frmulas de la misma manera que lo hace con otros campos: mediante el cuadro Campos, o escribindolos manualmente. Nota Debido a la compleja sintaxis de algunos campos de grupo, es muy recomendable introducir los campos de grupo seleccionndolos en el cuadro Campos en vez de escribirlos manualmente. Busque Sintaxis, comprobar en frmulas en la Ayuda en pantalla de Crystal Reports.

Comentarios de frmulas
Los comentarios de frmulas son notas que incluye con una frmula para explicar su diseo y funcionamiento. Los comentarios no se imprimen y no afectan a la frmula, pero aparecen en el Editor de frmulas. Siempre es conveniente incluir comentarios en frmulas complejas, especialmente en aquellas frmulas que se utilizan una y otra vez.

Para insertar comentarios en frmulas


Escriba los comentarios en el cuadro de texto Frmula del Editor de frmulas. El comentario puede figurar antes o despus de la frmula, o bien puede aparecer a continuacin de la frmula en la misma lnea. Nota Un comentario debe ir precedido por dos barras inclinadas (//).

Crystal Reports para Visual Basic

Filename: 86502594.doc Project: Traditional User's Guide Template Template: Author: Pablo Trillo Navarro Last Saved By: Carmen Revision #: 29 Page: 28 of 16 Printed: 12/26/96 14:24 A12/P12

Captulo 3 Frmulas

Cualquiera de las siguientes colocaciones es aceptable:


//Esta es una posicin //aceptable para un comentario. //Tenga en cuenta que cuando forzamos //un salto de lnea, debemos //comenzar cada nueva lnea //con dos barras inclinadas. If {pedidos.IMPORTE PEDIDO} in (100.00 to 250.00) Then .10 * {pedidos.IMPORTE PEDIDO} Else 0 //Esta tambin es una posicin aceptable de comentario. If {pedidos.IMPORTE PEDIDO} > 10.00 Then "" //Esta posicin tambin es aceptable. Else "Flag"

Consideraciones sobre los comentarios de frmulas


He aqu algunas consideraciones que debe tener en cuenta cuando incluya comentarios en frmulas: La sintaxis adecuada de un comentario es anteponer dos barras inclinadas (//) y a continuacin el comentario. Cuando Crystal Reports encuentra las dos barras, asume que el texto que figura a continuacin hasta el final de la lnea es slo un comentario y no debe evaluarse como parte de la frmula propiamente dicha. Crystal Reports trata como un comentario todo lo que sigue a las barras inclinadas en la misma lnea. Si divide su comentario en dos o ms lneas mediante la tecla ENTRAR, debe comenzar cada nueva lnea con dos barras inclinadas. Si no lo hace as, Crystal Reports tratar cada lnea que no tenga estas barras como parte de la frmula y mostrar un mensaje de error cuando compruebe la sintaxis de la frmula.

Sintaxis de las frmulas


Crystal Reports necesita que escriba los distintos componentes de una frmula de acuerdo con un conjunto especfico de reglas denominado sintaxis. En la sintaxis, como en la gramtica de cualquier idioma, se necesita cierta prctica para aprenderla y perfeccionarla. Los componentes de una frmula deben escribirse de una manera especfica y en un orden determinado. El programa utiliza elementos sintcticos (signos de puntuacin, corchetes, parntesis, etc.) para identificar los diversos componentes de una frmula; por esto es muy importante seguir las reglas para que el programa reconozca las frmulas y las haga funcionar como usted quera.

Crystal Reports para Visual Basic 29

Filename: 86502594.doc Project: Traditional User's Guide Template Template: Author: Pablo Trillo Navarro Last Saved By: Carmen Revision #: 29 Page: 29 of 16 Printed: 12/26/96 14:24 A12/P12

Captulo 3 Frmulas

A continuacin se muestran los diversos componentes de las frmulas y su sintaxis:

Crystal Reports para Visual Basic

Filename: 86502594.doc Project: Traditional User's Guide Template Template: Author: Pablo Trillo Navarro Last Saved By: Carmen Revision #: 29 Page: 30 of 16 Printed: 12/26/96 14:24 A12/P12

Captulo 3 Frmulas

Texto
"Texto" o Texto

(entre comillas simples o "dobles") Cuando utilice texto en las frmulas, debe escribirlo entre comillas simples o "dobles". Se imprimir cualquier texto que haya dentro de esas comillas.

Nmeros
23134.7

Cuando utilice nmeros en las frmulas, debe escribirlos sin separadores de comas o smbolos de moneda.

Campos
{archivo.CAMPO}

Cuando utilice campos en las frmulas, deben encerrarse entre llaves ({}) junto con el nombre de la tabla para identificar a qu base de datos se est refiriendo, seguido de un punto y el nombre de campo de esa tabla.

Ejemplo
{cliente.REGIN}

Esto identifica el campo Regin de la tabla Cliente.

Operadores
1+1

Cuando utilice operadores en las frmulas, basta con escribir el operador donde desee. Puede colocar un espacio en blanco delante y detrs del operador si lo desea, pero es opcional (por ejemplo, 1 + 1).

Funciones
NombreFuncin(x)

Cuando utilice funciones en las frmulas, basta con que escriba la funcin y que proporcione los argumentos necesarios entre parntesis. Por ejemplo, la funcin Sum(x) necesita un campo o una frmula como argumento (x).

Ejemplo
Average({pedido.CANTIDAD})

Esta frmula calcular el promedio de todos los valores del campo Cantidad.

Crystal Reports para Visual Basic 31

Filename: 86502594.doc Project: Traditional User's Guide Template Template: Author: Pablo Trillo Navarro Last Saved By: Carmen Revision #: 29 Page: 31 of 16 Printed: 12/26/96 14:24 A12/P12

Captulo 3 Frmulas

Corchetes en frmulas
Crystal Reports utiliza tres tipos diferentes de corchetes al escribir frmulas. Cada uno de ellos tiene un propsito especfico y slo pueden utilizarse con ciertos elementos de frmulas. {} se denominan llaves y se colocan alrededor de los campos de bases de datos, frmulas y parmetros:
{cliente.REGIN}, {@sum}, {?Regin}

[] se denominan corchetes y se utilizan con los operadores de subndice o de matriz:


{cliente.NOMBRE CLIENTE} [1]

() se denominan parntesis y se colocan alrededor de los argumentos de una funcin:


Round(x, # places), Abs(x)

Nota Los parntesis tambin pueden utilizarse para controlar el orden en que se deben evaluar los elementos de la frmula. Busque Orden de precedencia en la Ayuda en pantalla de Crystal Reports. Sugerencia Una manera til de saber qu corchete debe utilizar en cada lugar es la siguiente: Llaves {} = Campos Corchetes [] = Subndices (y matrices) Parntesis () = Parmetros Siempre que escriba la frmula manualmente o haciendo doble clic en los componentes de la frmula en los cuadros de lista de componentes, deber utilizar la sintaxis correcta si quiere que la frmula funcione correctamente.

Cmo se evalan las frmulas; orden de precedencia


Si va a crear frmulas con diferentes tipos de operadores, es importante tener en cuenta el orden en que Crystal Reports evaluar las diferentes partes de la frmula. Este orden se denomina orden de precedencia. El orden individual de precedencia sigue las reglas matemticas bsicas de prioridad. Primero se realiza, de izquierda a derecha, la multiplicacin y la divisin; despus, la suma y la resta. Por ejemplo:
5 + 10 * 3 = 35

Crystal Reports para Visual Basic

Filename: 86502594.doc Project: Traditional User's Guide Template Template: Author: Pablo Trillo Navarro Last Saved By: Carmen Revision #: 29 Page: 32 of 16 Printed: 12/26/96 14:24 A12/P12

Captulo 3 Frmulas

Primero se realiza la multiplicacin 10 * 3 para obtener 30. A continuacin se le suma 5 para obtener el resultado final de 35. Pero si su intencin es sumar 5 y 10 y despus multiplicar el resultado por 3, debe modificar el orden de precedencia mediante parntesis. Puede hacerlo de esta manera:
(5 + 10) * 3 = 45

Est claro que los parntesis tienen mayor precedencia que los operadores de suma, resta, multiplicacin y divisin. Estos redirigen el orden del clculo. Nota Cuando una frmula contiene otras frmulas como:
@Extension * 107.5%,

el programa evaluar primero la frmula incluida, @Extensin, siguiendo las reglas de orden de precedencia y a continuacin evaluar el resto de la frmula principal.

Cmo eliminar frmulas del informe


Cuando crea una frmula y la introduce en su informe, Crystal Reports: almacena la especificacin de la creacin de la frmula, utilizando el nombre que le ha asignado, y coloca una copia de trabajo de esa frmula en el lugar que especifique del informe. Una copia de trabajo es cualquier aparicin de la frmula en el informe. Para eliminar frmulas debe eliminar la especificacin y todas las copias de trabajo de esa frmula. Nota No puede eliminar la especificacin sin eliminar todas las copias de trabajo de esa frmula.

Para eliminar copias de trabajo individuales de una frmula


1 Seleccione la copia de la frmula que desea eliminar del informe. 2 Presione la tecla SUPRIMIR o SUPR del teclado de su equipo. Nota Incluso despus de haber eliminado del informe todas las copias de trabajo de una frmula, la especificacin de la frmula permanece inalterada. La especificacin se muestra en la ficha Frmula del cuadro de dilogo Insertar campos y est disponible para utilizarla inmediatamente si desea volver a introducirla en el informe.

Crystal Reports para Visual Basic 33

Filename: 86502594.doc Project: Traditional User's Guide Template Template: Author: Pablo Trillo Navarro Last Saved By: Carmen Revision #: 29 Page: 33 of 16 Printed: 12/26/96 14:24 A12/P12

Captulo 3 Frmulas

Busque Insertar campos, cuadro de dilogo en la Ayuda en pantalla de Crystal Reports.

Crystal Reports para Visual Basic

Filename: 86502594.doc Project: Traditional User's Guide Template Template: Author: Pablo Trillo Navarro Last Saved By: Carmen Revision #: 29 Page: 34 of 16 Printed: 12/26/96 14:24 A12/P12

Captulo 3 Frmulas

Para eliminar la especificacin


Nota Este paso slo se puede completar despus de haber eliminado del informe todas las copias de trabajo de la frmula. 3 Una vez eliminadas todas las copias de trabajo de la frmula, haga clic en el botn Insertar campos de la barra de botones. Aparecer el cuadro de dilogo Insertar campo de base de datos con la ficha Base de datos activa. 4 Haga clic en la ficha Frmula para activarla. 5 Seleccione la especificacin de frmula que desea eliminar en la lista de nombres de frmulas. Crystal Reports activar el botn Eliminar. 6 Haga clic en el botn Eliminar y Cristal Reports eliminar la especificacin de frmula. Nota Si la frmula se est utilizando en otra frmula, el programa eliminar de todas formas la especificacin. Nota Si no ha eliminado todas las copias de trabajo de la frmula seleccionada, el programa mostrar el mensaje El campo de frmula est en uso y no se puede eliminar

Cmo copiar frmulas desde la Ayuda en pantalla de Crystal Reports


Windows le permite copiar texto de temas de Ayuda en pantalla al Portapapeles. De esta manera podr pegar este texto all donde lo necesite. Puesto que las frmulas que desarrolla mediante el Editor de frmulas son simplemente texto, puede ahorrar mucho tiempo si copia frmulas tiles directamente en el Editor de frmulas y las modifica despus para adaptarlas a sus necesidades.

Para copiar frmulas desde la Ayuda en pantalla


7 Con el Editor de frmulas activo, llame a la Ayuda en pantalla de Crystal Reports de cualquiera de las maneras estndar (men Ayuda, tecla de funcin F1, etc.). 8 Sin importar el tema que aparezca primero, utilice las funciones Buscar o ndice para encontrar el tema que contenga la frmula que le interesa. 9 Llame al tema.

Crystal Reports para Visual Basic 35

Filename: 86502594.doc Project: Traditional User's Guide Template Template: Author: Pablo Trillo Navarro Last Saved By: Carmen Revision #: 29 Page: 35 of 16 Printed: 12/26/96 14:24 A12/P12

Captulo 3 Frmulas

10 Elija el comando Copiar del men Edicin. Aparecer el cuadro de dilogo Copiar con el texto del tema mostrado en la ventana de edicin con desplazamiento. Nota Para hacer esto, resalte el texto y elija Copiar en el men Edicin para copiar el texto al Portapapeles. 11 Desplcese por el tema hasta encontrar la frmula que desea copiar. 12 Seleccione la frmula arrastrando el cursor en forma de I sobre ella y haga clic en el botn Copiar cuando termine. Windows colocar una copia del texto seleccionado en el Portapapeles. 13 Coloque el punto de insercin donde desee que aparezca el texto en el Editor de frmulas y presione CTRL-V para pegar el texto desde el Portapapeles. 14 Modifique la frmula para adaptarla a sus necesidades. Nota En Windows 95 y en Windows NT, resalte el texto que desea copiar y elija Copiar en el men Edicin o presione CTRL-C para copiar el texto al Portapapeles. Nota Cambie los campos, las frmulas, los campos de grupo, las instrucciones condicionales y las cadenas de texto que sea necesario utilizar con los datos empleados en el nuevo informe.

Crystal Reports para Visual Basic

Filename: 86502594.doc Project: Traditional User's Guide Template Template: Author: Pablo Trillo Navarro Last Saved By: Carmen Revision #: 29 Page: 36 of 16 Printed: 12/26/96 14:24 A12/P12

You might also like