Está en la página 1de 48

Crystal Reports XI: Manual Avanzado


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR 


1

INDICE
Iniciando un nuevo reporte ..................................................................................................................................... 4
Secciones del Reporte ............................................................................................................................................. 6
Formato de los objetos ............................................................................................................................................ 6
Utilizando objetos de textos.................................................................................................................................... 7
Importante ............................................................................................................................................................... 7
Seleccin de Registros ............................................................................................................................................ 9
Refrescando el reporte VS. Usando datos guardados ............................................................................................. 9
Limitando datos con el criterio de seleccin de grupos........................................................................................ 10
Consideraciones de Performance.......................................................................................................................... 10
Ordenando, Agrupando y Sumarizando................................................................................................................ 11
Agrupando............................................................................................................................................................. 11
Importante ............................................................................................................................................................. 12
Sumarizaciones ms utilizadas ............................................................................................................................ 12
Top N / Botton N .................................................................................................................................................. 14
Problemas que surgen al insertar grupos .............................................................................................................. 14
Campos de Frmula .............................................................................................................................................. 15
Variables en frmulas ........................................................................................................................................... 16
Running Total ....................................................................................................................................................... 16
Formato Avanzado................................................................................................................................................ 17
The Hightlighting Expert ...................................................................................................................................... 18
Formato de las Secciones...................................................................................................................................... 20
El Section Expert............................................................................................................................................... 20
Parmetros............................................................................................................................................................. 22
Seteando valores por default................................................................................................................................. 23
Mtodos para generar las Listas de Valores Dinmicas ....................................................................................... 23
Utilizando Listas de Valores Dinmicas ya existentes ......................................................................................... 24
Otro uso de los parmetros ................................................................................................................................... 24
Objetos Cross Tab ............................................................................................................................................ 26
Cambiando el objeto Cross Tab............................................................................................................................ 26
Suprimiendo Subtotales y etiquetas ...................................................................................................................... 27
Mejorando la apariencia de un Cross Tab............................................................................................................ 27
Importante ............................................................................................................................................................. 27
Subreportes ........................................................................................................................................................... 28
Grficos................................................................................................................................................................. 30
Chart Expert .......................................................................................................................................................... 30
Chart Analyzer ...................................................................................................................................................... 32
Anexo A: Forma en que Crystal Reports genera los reportes ........................................................................... 33
Anexo B: Haciendo reportes desde bases de datos SQL ............................................................................... 36
Logearse a SQL Database..................................................................................................................................... 36
Drivers de Acceso Directo .................................................................................................................................... 36
ODBC ................................................................................................................................................................... 36
Cambiar un reporte de una base PC Style a una Cliente/Servidor...................................................................... 36
Linkeando Tablas.................................................................................................................................................. 37
Diferencias de Linking entre PC-Style y SQL Databases .................................................................................... 37

=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

Usando mltiple tipos de base de datos en un mismo reporte .............................................................................. 37


Tipos de Join ......................................................................................................................................................... 38
Tabla de la Izquierda y Tabla de la derecha ......................................................................................................... 39
Sentencias SQL..................................................................................................................................................... 39
Usando SQL Stored Procedures............................................................................................................................ 39
Usando SQL Expresin Fields.............................................................................................................................. 40
Agrupando en el Servidor ..................................................................................................................................... 40
Efectos del Drill Down ......................................................................................................................................... 40
Consideraciones de Performance.......................................................................................................................... 40
Anexo C: Otras Consideraciones .................................................................................................................. 41
Instalacin Crystal Reports .................................................................................................................................. 41
Instalacin Crystal Reports for .NET................................................................................................................... 41
Actualizacin ........................................................................................................................................................ 42
Compatibilidad con versiones anteriores .............................................................................................................. 42
Notas y limitaciones.............................................................................................................................................. 43
Integracin con Crystal Enterprise........................................................................................................................ 45
Impresin y exportacin ....................................................................................................................................... 46
Acceso a datos....................................................................................................................................................... 46


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

Iniciando un nuevo reporte


Se puede comenzar a construir un reporte de 2 formas diferentes: Mediante los asistentes o desde un reporte en
blanco.
Report Expert: Existen 4 asistentes diferentes, los cuales mediante diferentes ventanas permiten, paso a
paso, armar el reporte.

Standard: ste es el asistente ms genrico y usado. A travs de los tabs, del mismo, se puede no
solo seleccionar la fuente de datos, las tablas, hacer los links, seleccionar los campos a visualizar
en el reporte, sino tambin ordenar los registros, agruparlos, insertar sumarizaciones, insertar
filtros y grficos.

Mail Label: Etiquetas para cartas.

Cross Tab: Permite crear reportes en los cuales los datos son mostrados en un objeto Cross
Tab.

OLAP: Este asistente est orientado a realizar reportes con fuentes de datos multidimensionales,
permitiendo desplegar la informacin de los cubos en una grilla muy parecida al cross-tab.
Crystal Reports posee conectividad con: Business Warehouse, Essbase Cube, IBM DB2 Cube,
OLE DB for OLAP, Informix MetaCube, Holos HDC Cube.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

Tambin se puede comenzar eligiendo la opcin de un reporte en blanco. Mediante esta opcin, lo primero que
hay que hacer es seleccionar la fuente de datos. Una vez seleccionada la misma, se puede comenzar a
desarrollar el reporte. Mediante el Explorador de Campos, el cual se accede desde el men o desde la barra de
herramientas, se pueden elegir los campos de la fuentes de datos seleccionada y otros tipos de campos, que
explicaremos a lo largo del documento, con los que queremos armar el reporte.

En cualquiera de las dos opciones que utilizamos para armar un reporte, si elegimos mas de una tabla,
automticamente va a aparecer una ventana llamada Visual Linking Expert, mediante la cual podemos
establecer las relaciones entre las tablas seleccionadas previamente. Estos links o Join, se pueden establecer con
diferentes opciones.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

Secciones del Reporte


Para el desarrollo de cualquier reporte, es necesario e importante conocer las distintas secciones que estos
tienen, ya que es en ellas donde se colocan los diferentes campos, frmulas, grficos y sumarizaciones.
Seccin
Report Header
Page Header

Details
Report Footer
Page Footer

Cundo aparece???
Aparece una sola vez y al principio
del reporte.
Aparece en el encabezado de cada
pgina tantas veces como pginas
contenga el reporte.
Aparece tantas veces como registros
haya en la fuente de datos.
Aparece una sola vez y al final del
reporte.
Aparece en el pie de cada pgina
tantas veces como pginas contenga
el reporte.

Qu colocar???
Ttulos, logo de la empresa, grficos,
objetos cross-tabs, lneas, etc.
Ttulos de Columnas, lneas, frmulas,
etc.
Campos de la fuente seleccionada,
frmulas, texto, etc
Totales, grficos, cross- tabs, etc.
Nmero de pginas, texto, etc.

Formato de los objetos


Al insertar un objeto, Crystal le pone un formato por default, que se puede cambiar ya sea desde el Report
Options y/o Crystal Options. Los cambios toman efectos a partir del momento en que se hacen.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

Utilizando objetos de textos


Los objetos de texto se insertan desde el men o la barra de herramienta. Se pueden posicionar en cualquier
seccin del reporte pero generalmente son insertados en el Report Header, y/o Page Header. stos pueden ser
editados libremente con una barra de herramienta muy parecida a la utilizada en los productos de Microsoft
Office.

Importante
Los objetos de tipo texto se pueden combinar con campos de la fuente de datos o campos de frmulas o
parmetros.
Supongamos que tenemos la siguiente situacin: disponemos de dos campos de la fuente de datos de tipo
string y el contenido del mismo es de longitud variable. Un campo contiene el nombre del cliente y el otro el
apellido y queremos mostrar primero el apellido, a continuacin una coma, y despus el nombre. Para resolver
esto, insertamos ambos campos separados por una coma dentro de un objeto texto. Al insertar un campo dentro
de un objeto de texto, ste se ajusta el tamao del mismo resolviendo el inconveniente propuesto, quedando no
solo en forma mas prolija sino tambin en un solo campo, permitiendo de este modo tratar al mismo como un
objeto nico, para moverlo o darle formato en forma global si as lo quisiera.
Se pueden combinar tambin con campos especiales(Son campos incluidos en Crystal Reports, como nmero
de pgina, ttulo, autor, etc.), parmetros o frmulas.

Consideraciones de Performance
Crystal Reports debe hacer muchos clculos internos para combinar y ajustar el tamao, que degradan la
performance. Por lo tanto se recomienda combinar objetos de texto con campos, pero en secciones que no se
repitan tanto, como los Headers y/o Footer.
Si se inserta en la seccin detail se procesa cada vez que se lee un registro, si es necesario se recomienda usar
frmulas que son mas performantes.
Tratar de no usar el clsico Pag. xx de xx, debido a que el reporte debe calcular el total de pginas antes de
poder mostrar la primer pagina. Es decir, que de no usar este tipo de campos, Crystal Report muestra la primer

=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

pagina sin tener que darle formato a las pginas siguientes, lo cual hace que en reportes extensos, sea
sumamente performante.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

Seleccin de Registros
A travs del Record Selection Frmula se pueden filtrar los registros que son ledos de la fuente de datos y
trados al reporte. Sirve principalmente para evitar, en bases de millones de registros, traer todos los registros,
incluso los que no nos interesan.
En sntesis, vendra a hacer la clusula WHERE de una consulta SQL, aqu tambin se pueden combinar
diferentes criterios de filtro relacionndolos por medio de and o or.

Refrescando el reporte VS. Usando datos guardados


Cuando se hace un preview de un reporte por primera vez, Crystal tiene que leer la fuente de datos, es decir
genera una consulta SQL (en base a los campos utilizados en el reporte y a los filtros utilizados) y la ejecuta,
para poder mostrar los resultados. A su vez, los registros que devolvi dicha consulta son almacenados en
memoria o en archivos temporarios, lo cual le permite a Crystal que ante modificaciones de formato use los
datos guardados, mejorando notoriamente la performance en tiempos de desarrollo.
Al agregar nuevos campos al reporte, Crystal hace un refresh, es decir, regenera la consulta SQL (debe traer
nuevos datos) y la ejecuta.
Si se modifica el criterio de seleccin o de filtro, Crystal le ofrece al usuario que est desarrollando el reporte,
hacer un refresh o usar los datos almacenados realizando el filtro sobre los datos guardados en memoria.
Tener especial cuidado con este punto!!! Ya que suponiendo que el ltimo refresh realizado no abarque a los
registros de un nuevo filtro que apliquemos y adems seleccionamos Usar los datos almacenados, como
resultado obtendremos cero (0) registros, lo cual no significa que la fuente de datos no contenga registros para
este nuevo filtro aplicado, ya que en ningn momento Crystal aplic este filtro directamente en la fuente de


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

datos, sino que, lo aplic a los datos guardados. Deberamos hacer un refresh para cercioraron que el resultado
anterior es correcto.
Cuando se usa el select expert con una base de tipo PC-Style , hay que tener en cuenta que son case sensitive,
por lo cual hay que estar atento al escribir la frmula. Usar la funcin uppercase (campo)=Criterio en
mayscula.

Limitando datos con el criterio de seleccin de grupos


La seleccin de registros segn el caso ocurre al momento de hacer la consulta a la fuente de datos o en la
primera pasada, antes de que los datos sean agrupados y sumarizados, por lo tanto no puede ser aplicado a subtotales, ni a sumarizaciones etc.
Por lo tanto, de requerir filtrar la informacin por sub-totales o sumarizaciones, se debe utilizar la opcin de
Group Selection.
Este tipo de filtro se evala despus de que el group tree, subtotales y sumarizaciones sean calculados,
ocultando aquellos grupos que cumplan la condicin del filtro aplicado.

Consideraciones de Performance
La seleccin de registros es la parte mas crtica del reporte ya que es donde ms tarda. Como vimos
anteriormente Crystal genera una consulta SQL para leer los registros, con lo cual es fundamental optimizar
dicha consulta.
Como primer consideracin hay que intentar no utilizar funciones de Crystal en el filtro, as el filtro puede ser
traducido al lenguaje SQL de la fuente de datos con la que estemos trabajando y de esta manera que sea el
motor de la fuente de datos el que haga el trabajo de filtrar los registros y no Crystal, que lo realiza registro a
registro a medida que los va leyendo, lo cual es ms lento.
Para evitar el uso de funciones de Crystal, la herramienta provee, para cierto tipo de base de datos (Access, SQL
Server, Oracle) los SQL Expressions que son como frmulas en las cuales podemos utilizar diferentes
funciones (dependen del lenguaje de base de datos) evitando as, usar funciones de Crystal que no son
interpretadas.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

10

Ordenando, Agrupando y Sumarizando


Ordenando
Cuando Crystal hace la consulta a la fuente de datos y devuelve los registros, estos se encuentran en el orden en
el que estaban almacenados. Sin embargo se puede definir un orden ascendente /descendente desde el men o
desde la barra de herramientas.
Se puede ordenar por mas de un campo y no es necesario que ste se muestre en el reporte.

Agrupando
La agrupacin lo que hace es juntar todos los registros que tengan el mismo valor del campo por el cual se est
agrupando. Se puede definir un grupo desde el men o desde el botn en la barra de herramientas en base a un
campo de la fuente de datos o una frmula.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

11

Crystal permite definir N grupos en un solo reporte, no hay limitaciones en cuanto a cantidad de grupos se
refiere.
Al insertar un grupo en el reporte, se crean dos secciones mas en el mismo, por encima y por debajo de la
seccion Details o en su defecto del o los grupo/s ya definido/s:

El Group Header (Generalmente se coloca el nombre del grupo)


El Group Footer (Generalmente se coloca la sumarizacin).

A su vez, al hacer una vista previa, aparece un rbol a la izquierda del reporte, llamado Group Tree, que sirve
para acceder de forma mas rpida (Acceso Directo) a un grupo en particular y para visualizar la estructura
jerrquica cuando hay mltiples grupos. El usuario final, que consultara el reporte, puede ocultar el Group
Tree mediante las opciones del viewer.

Importante
Otra de las cosas a tener en cuenta es que la jerarqua generada por los grupos est dada en el orden que se
encuentran los mismos. Que significa esto, que si generamos un grupo por Pas primero (G1) y un grupo por
Provincia despus (G2), la estructura generada va a estar dada por el G1 y el G2, es decir, por Pas y despus
por Provincia. Ahora bien, supongamos que generamos primero el grupo por Provincia (G1), y despus
generamos el grupo por pas (G2), la estructura generada va ser Provincia Pas, la cual es incorrecta. Cmo
corregimos esto?? No es necesario borrar todos los grupos existentes y volver a crearlos en el orden correcto
como para que genere la estructura en forma correcta, lo que podemos hacer es corregir el orden de los mismos,
o bien arrastrando la seccin del grupo en cuestin al lugar correcto o mediante el Change Group Expert por
el men.
Una vez, generados l o los grupos, se est en condiciones de poder definir diferentes sumarizaciones en base a
ellos. Al agregar un subtotal Crystal lo coloca automticamente en el footer del o los grupos seleccionados, lo
cual no significa que no puedan ir en los header de las secciones involucradas. Para ello simplemente se
arrastra.
A su vez, los subtotales se pueden copiar y pegar en los diferentes niveles de agrupacin que tengamos, ya que
stos, simplemente tienen asociados la operatoria designada, de est forma, evitamos volver a crearlos.

Sumarizaciones ms utilizadas
Sum: Suma los valores de campos de tipo numrico.
Count: Cuenta tos los campos ledos ya sean de tipo numrico o string
Average: Calcula el promedio
Maximum: Calcula el mximo
Minimum: Calcula el mnimo
Distinct Count: Cuenta los distintos.
Si el campo que queremos sumarizar contiene valores nulos la funcin de sumarizacin no los va a tener en
cuenta. Hay una opcin que permite convertir los valores nulos a cero o empty string en Report Options.

=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

12

Variantes en la creacin de grupos:


Hemos visto anteriormente que para definir un grupo Crystal se basa en campos de la fuente de datos o en
frmulas, agrupando los registros en base a los campos mencionados.
Ahora bien, hay dos variantes muy interesantes y utilizadas, en donde podemos especificar la forma en que
queremos que se agrupe.
La primera opcin es la siguiente: supongamos que nuestra empresa realiza ventas en todo Amrica, y en la
base tenemos un campo que nos indica en que pas se realizo la venta. Si agrupramos por este campo
podramos obtener las ventas discriminadas por pas, pero en realidad lo que a nosotros nos interesa es saber las
ventas por Regin, es decir, por Amrica del Sur, Amrica Central y Amrica del Norte, y esta agrupacin no
existe en la base de datos, con lo cual para este caso, Crystal nos da la posibilidad de especificar como
queremos agrupar en base al campo Pas, definindole las tres regiones mencionadas y que pases integran cada
una de ellas, obteniendo as las ventas por regin.
Ahora, tenemos las ventas por Regin pero adems queremos saber dentro de cada una de ellas en que pases
tuve ventas y como se distribuyen, deberamos volver a agrupar por el campo pas. Sin embargo no se puede
volver a agrupar por el campo que se uso anteriormente, con lo cual estaramos frente a un problema. La forma
de resolver esto es agrupando por una frmula que devuelva como resultado el campo pas.
La segunda opcin, es agrupar por tablas de estructuras Padre-Hijo, muy comunes en diagramas
multidimensionales por su flexibilidad de generar y mantener jerarquas. Para realizar un grupo y que me
interprete automticamente dichas estructuras, primero se agrupa por el campo Hijo, en forma normal. Luego
mediante el men accedemos a la opcin Hierarchical Grouping Options donde podemos definir el campo
Padre y la tabulacin que deseamos que exista entre los diferentes niveles de la estructura.

Drill-Down
La importancia de definir grupos, no solo est dada por la posibilidad de mostrar informacin sumarizada sino
tambin la posibilidad de hacer drill down, la cual nos permite ir explorando la informacin por los
diferentes grupos, bajando de un grupo a otra hasta llegar al nivel de detalle del reporte.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

13

Se puede hacer drill down a travs del reporte o el Grupo Tree. En el reporte se puede cliquear sobre el Group
Name o sobre el valor sumarizado para hacer drill down.
En algunas ocasiones se necesita impedir que el usuario haga drill down, por ejemplo sobre los valores que
calcul la sumarizacin. Para resolver este problema se deben insertar campo resultado dentro de un objeto de
texto.

Top N / Botton N
Para poder definir un Top N o Botton N, es necesario que en el reporte exista al menos un grupo y alguna
sumarizacin por el mismo, debido a que se estos se definen en base a un subtotal o una sumarizacin de un
grupo.
En la versin XI se incorpor la posibilidad de definir por medio de una formula la cantidad de registros a
visualizar, en las versiones anteriores el parmetro N se define de forma fija.
Una aclaracin importante es que, no se puede hacer un sub-total de los Top N o Botton N, debido a la forma en
que Crystal los calcula. Para solucionar esto, se debe usar un campo Runnig Total

Problemas que surgen al insertar grupos


No quedan bien los encabezados cuando se define mltiples grupos y se utiliza la opcin de DrillDown. Este
inconveniente fue solucionado a partir de la versin de Crystal Report 8.5, pero la solucin propuesta por la
herramienta no siempre satisface las necesidades de reporting, con lo cual veremos mas adelante que solucin
tenemos a este problema, para cualquier versin de Crystal Report


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

14

Campos de Frmula
Los campo de frmulas son objetos que se construyen a partir de campos existentes en la fuente de datos con
funciones definidas por el usuario de desarrollo y que se manejan como si fuera un campo mas de la base.
Obteniendo de esta manera campos o clculos que no vienen definidos en la fuente de datos.
Para insertar un campo de frmula, se debe ir al Explorador de Campos

Al crear una nueva frmula, primero se le debe asignar un nombre (el cual figura en el Explorador de Campos)
y luego se abre el Editor de Frmulas.

Los campos frmulas pueden ser creados con sintaxis Crystal o con sintaxis Basic, la diferencia radica en el
lenguaje de escritura de las mismas. La sintaxis Crystal es un lenguaje muy parecido a los lenguajes de
programacin pero es un lenguaje propio de Crystal, en cambio, la sintaxis Basic resulta ms sencilla para
aquellos usuarios que estn familiarizados con Visual Basic.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

15

El editor de frmulas, posee tres arboles diferentes. Uno con los campos de la fuente de datos seleccionada, y
todos aquellos elementos que se definan en el reporte. Otro con las funciones de Crystal y por ltimo, uno de
Operadores, los cuales facilitan al usuario la construccin de frmulas.

Variables en frmulas
Hay ocasiones en las que se necesita mantener el valor registro a registro, lo cual se resuelve mediante el uso de
variables. Hay diferentes tipos de variables y con tres diferentes alcances:
Local: Mantienen el valor en la frmula en la que fue definida.
Global: La variable mantiene el valor en todo el Reporte. Una variable definida en una frmula puede ser usada
en otra frmula, incluso en otra seccin. Por defecto sino definimos el alcance de un a variable al declararla,
este es de alcance global.
Shared: Sirven para compartir variables entre un Reporte y un Sub-Reporte, de gran utilidad cuando queremos
traer informacin del Sub-Reporte al Reporte Principal.

Running Total
Es un campo, que brinda flexibilidad para acumular o incrementar los valores. Se calcula en
(WhilePrintingRecords) y hace la operacin de sumatoria definida con los datos que van a ser impresos.
Algunos de los principales tipos de sumatorias que realiza son: Sum, Count, Average. Sirve para resolver el
problema que se tiene al querer sumarizar los valores de cierto grupo que tiene un Top/Botton N, ya que al
hacer un Sub-Total de los Top/Botton N, me suma todos los valores de los grupos.
No se pueden crear Running Total en base a frmulas que se evalan en la segunda pasada, ni en base a graficos
y mapas.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

16


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

17

Formato Avanzado
The Hightlighting Expert
Permite dar formato a los campos dependiendo de los valores que estos tengan. Es de gran utilidad cuando se
presenta el caso donde en funcin de varias condiciones queremos dar formato a un campo, incluso estas
condiciones tienen prioridades. La desventaja que posse, es que se debe configurar campo por campo, no
podemos hacerlo al mismo tiempo para varios campos.
Por ejemplo: Si la deuda es mayor a 1000 mostrar en rojo, si la deuda es menor o igual a 1000 pero mayor a 100
mostrar en azul y si es menos o igual a 100 dejar como est. Para realizar este tipo de formato condicional, es
una muy buena opcin utilizar el Hightlighting Expert

Conditional Formatting Frmulas


El formato condicional usa el editor de frmulas, mediante el cual podemos crear frmulas que determinen
cuando y como queremos que aparezca el objeto.
Formato Absoluto es simplemente darle formato a los objetos con el editor de formato. Si se aplica formato
condicional el formato absoluto es ignorado, siempre y cuando en la frmula que se realice no utilice
DefaultAttribute, de lo contrario el atributo por defecto es el que se encuentra seteado.
Mediante esta opcin si se pueden setear varios campos al mismo tiempo, incluso teniendo en cuenta el valor de
cada campo seleccionado. Para poder hacer esto hay que utilizar la siguiente funcin: CurrentFieldValue


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

18

Usos creativos de la propiedad Suppress


Hay situaciones en la que es muy conveniente usar conditionally suppressing
Ejemplos de utilidad: Mostrar la leyenda continuacin del grupo cuando se repite el Group Header en
distintas pginas; mostrar ciertos mensajes solamente para algunos registros; Usar imgenes una arriba de la
otra y que aparezca una o la otra dependiendo de los valores.

Imagenes
Se puede variablizar la imagen que se sita en un Reporte, hacienda variable la ubicacin de la misma.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

19

Formato de las Secciones


Las opciones disponibles al cliquear botn derecho sobre una seccin son las siguientes:
Insert Line: Inserta una guideline horizontal en dicha seccin
Delete Last Line: Borra el ultimo guideline achicando el rea.
Arrange Lines:
Fit Section: Ajusta la seccin hasta la guia o el campo mas proximo. Es el mas usado de las opciones.

El Section Expert

Free form placement: Permite mover objetos y que se ajusten a las guas

Hide(drill- down ok): Permite ocultar la seccin para hacer drill down.

Suppress: Suprime la seccin y todos los objetos dentro de ella. Es la ms utilizada y practica.

New Page Before: Empieza una pagina nueva antes de imprimir la seccin

New page after: Empieza una pgina nueva despus de imprimir la seccin

Suppress blank Section: Suprime la seccin si no hay objetos dentro de ella

Underlay Following Section: Cada seccin empieza donde termina la anterior. Si esta seleccionada esta
opcin en la seccin B, dicha seccin imprime el contenido de la misma, en las siguiente, es decir las
secciones siguiente no empiezan donde termina la seccin B. Sirve para acomodar grficos al costado de


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

20

los datos, poner imgenes de fondo, poner informacin de un Sub-Reporte como doble columna en el
reporte principal


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

21

Parmetros
Los campos parmetros sirven para que el usuario final pueda ingresar datos al reporte, de esta forma se puede
hacer variable el reporte tanto en informacin, si se utiliza para cambiar el criterio de seleccin de registros, o
en formato, si se utiliza para hacer condicional el formato de los campos.
Para crear un parmetro se hace desde el Explorador de Campos.

Cuando se hace un refresh del reporte y este contiene parmetros, Crystal, ofrece la opcin de usar los valores
asignados previamente al parmetro o definir nuevos valores. El valor que es ingresado, luego es pasado, segn
su utilizacin, al Record Selection Frmula, o al editor de frmula de formato condicional del campo que
corresponda.
Los parmetros tambin se pueden mostrar en un reporte y manipularlos como los campos de la base o
frmulas.
Para los parmetros que permiten mltiples valores o valores de rango, se les deber hacer un tratamiento
especial para mostrar en el reporte los valores ingresados por el usuario.
Los tipos de parmetros pueden ser Simples o en Cascada, donde los tipos de datos van acorde a los posibles en
Crystal Reports.
Los parmetros simples son aquellos parmetros que solo tienen definido un solo nivel de carga y el valor a
ingresar no depende de otro valor ingresado. En cambio los parmetros en cascada pueden tener diferentes
niveles de carga de valores, donde cada uno de ellos va filtrando los valores de los niveles inferiores.
Por ejemplo, si tuviramos que realizar un reporte de clientes, donde el filtro del mismo, sea la ciudad, podemos
realizar un parmetro en cascada con los siguientes niveles de carga: Pas Regin Ciudad. De este modo el
usuario primero seleccionara un Pas, luego cuando vaya a seleccionar una regin, solo ver las regiones del


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

22

pas previamente seleccionado. Luego de seleccionar una regin deber seleccionar la ciudad, donde solo ver
las ciudades correspondientes a la regin previamente seleccionada.
En el caso de los parmetros en cascada podemos generar un parmetro para cada nivel o simplemente
generamos un solo parmetro para el ltimo nivel de la cascada.

Seteando valores por default


A los parmetros se le pueden setear valores por default, con el fin de que cuando el usuario consulte el reporte
y tenga que ingresarle un valor al parmetro, le aparezca un lista desplegable con los posibles valores del
parmetro. Es importante aclarar que los valores por default pueden ser estticos o dinmicos.
En el primer caso los valores por defecto no se actualizan, por ejemplo, si estamos seteando los valores por
defecto del parmetro sucursal y cargamos las 5 sucursales con las que hoy cuenta la empresa, si el da de
maana se abre una nueva sucursal esta no se va a visualizar en los valores por defecto del parmetro. Con lo
cual, en este caso deberamos abrir el reporte e incorporar el nuevo valor correspondiente a la nueva sucursal.
Ahora bien, si definimos los valores por defecto como dinmicos, los mismo se actualizarn segn los valores
que se encuentren en la base de datos, es decir, siguiendo con el ejemplo de la sucursal, nosotros solo
definiramos de que campo de la base de datos debe tomar las diferentes sucursales y en el caso que se
incorporen nuevas sucursales estas aparecern en los valores por defecto, ya que justamente el valor no es
esttico sino dinmico.
A su vez, al parmetro se le pueden incorporar validaciones bsicas, para que valide el valor ingresado por el
usuario. Para los parmetros que son numricos, se puede declarar un valor inferior y otro superior, limitando el
ingreso de valores fuera del rango establecido.
Para parmetros de tipo string, se puede validar el largo de la cadena, ya sea especificando el mnimo y mximo
nmeros de caracteres que el usuario tendr que ingresar o mediante el Edit mask.

Mtodos para generar las Listas de Valores Dinmicas


Desde Crystal Reports: Al generar un parmetro dinmico utilizando como fuente de datos las tablas
seleccionadas en el reporte, podemos generar la lista de valores dinmicas. Ahora bien, la misma, no estar
disponible en el repositorio hasta que no se publique el reporte en Enterprise, ya que al verificar que el reporte
tiene un parmetro dinmico Enterprise genera la lista dinmica en el repositorio.
Desde el Business View Manager: Desde aqu uno podra generar y/o modificar todas las listas dinmicas que
necesite.
Los pasos para generar una Lista Dinmica de cero son los siguientes:
1) Generar una Conexin: Desde aqu, se configura el driver de conexin a la base de datos deseada.
2) Generar un Data Fundation: Diagrama de Tablas Relacionado
3) Generar un Business Element: Modelo conceptual de una o mas tablas de un Data Fundation

=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

23

4) Generar un Business View: Conjunto de Business Element, del cual un usuario final podra
desarrollar reportes, sin tener que conocer el Modelo de Datos Relacional.
5) Generar una Lista de Valores: La lista de valores se genera en base a un Business View
6) Configurar el esquema a utilizar para la actualizacin de la Lista de Valores, es decir, se puede
configurar que se actualice cada n segundos o programar la actualizacin de la lista, similar a un
scheduled de un Reporte en Enterprise.
IMPORTANTE: Al visualizar el Reporte en enterprise puede suceder que se solicite ingresar usuario y
password de la base de datos donde se obtiene la lista dinmica. Para que esto no suceda se debe setear en la
conexin que utiliza la Lista Dinmica, que no pregunte usuario y password cada vez que se ejecuta la lista y
definirle un usuario y password para realizar la conexin.

Utilizando Listas de Valores Dinmicas ya existentes


Las listas de Valores Dinmicas al ser almacenadas en el Repositorio de Enterprise, estn disponibles para ser
reutilizadas. De este modo, volviendo al ejemplo del parmetro de sucursal, si tuviramos 5 reportes que
contienen dicho parmetro no es necesario generar la lista de valores dinmicos 5 veces sino que se define una
vez, se almacena en el repositorio y luego se reutiliza en los otros reportes.

Utilizando Listas de Valores Dinmicas con Stored Procedure


En el caso de que la fuente de datos de nuestro reporte es un Stored Procedure y queramos que un parmetro del
mismo tenga valores por defecto en base a una lista dinmica, debemos primero generar la lista dinmica por
medio del Business View Manager y despus si linkearla con el parmetro del Stored Procedure.
Ahora bien, si nosotros tenemos parmetros en nuestro Stored Procedure que estn relacionados, es decir,
queremos utilizar parmetros de tipo Cascada, no es posible asignarle a los parmetros del Stored Procedure, los
diferentes niveles de la Lista de Valores, lo que si es posible asignarle el ltimo nivel, que en el caso de que sea
nico el valor del ultimo nivel no habra problemas, ya que alcanzara con ese valor para filtrar la informacin.
Como podemos resolver este inconveniente si no es nico el cdigo de nuestro nivel inferior?? Para resolver
esto deberamos generar cada nivel de nuestra lista de valores dinmicos, como una combinacin del valor del
nivel actual con los niveles superiores concatenados, por ejemplo con .. Esto se realiza por medio de formulas
en el BVM. De esta manera obtendremos un cdigo nico en el menor nivel, y en el Stored Procedure
descomponemos esta combinacin para poder filtrar en nuestra base de datos por los valores de los diferentes
niveles.

Otro uso de los parmetros


Los parmetros, como mencionamos anteriormente, se pueden ser usados tambin para dar formato condicional.
A continuacin se mencionan varios ejemplos de este uso.
a) Se puede esconder informacin a los usuarios dependiendo de algn password que ingresen.
b) Se pueden resaltar valores dependiendo a un tope ingresado por el usuario.
c) Se le puede dar formato a los nmeros y a las fechas del reporte, dependiendo de un parametro Idioma,
donde pueden ingresar si lo quieren ver en formato espaol o ingles.

=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

24

d) Tambin se puede usar los parmetros para ordenar o agrupar, creando una frmula como por ejemplo:
IF {group by }= Country THEN
{Customer.country}
ELSE
{Customer.region}
Al usar este tipo de frmulas para agrupar, s esta obligando a que Crystal haga el trabajo, si es que se est
usando una base SQL, perdiendo performance ya que el trabajo de agrupar y ordenar lo podra estar haciendo el
servidor.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

25

Objetos Cross Tab


El Cross Tab es un objeto, en el cual podemos definir las filas, las columnas y que queremos sumarizar. Es una
gran solucin cuando estamos frente a un caso donde tanto las filas como las columnas debern ser variables
cada una a un campo determinado de la base.
El campo sumarizado debe ser de tipo number o currency. Se pueden usar campos frmulas tanto como
columna, como fila, o como campo a sumarizar.
Este tipo de objetos se puede colocar solo en las secciones Report Header o Report Footer o en los Header o
Footer de los grupos definidos.
El Cross Tab lo que hace es agrupar los registros que va leyendo, por los campos que tengamos definidos en las
filas como en las columnas. Es decir, que contamos con las mismas opciones que tenemos al hacer un grupo.

Cambiando el objeto Cross Tab


Los Cross Tab son calculados en la segunda pasada WhilePrintingRecords, por lo tanto no se pueden usar
frmulas de segunda pasada. Tienen que ser frmulas calculadas durante la primera pasada.
Se pueden agregar mltiples columnas, filas o sumarizaciones. Por el lado de las sumarizaciones si hay dos,
aparecern dos valores en cada celda.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

26

Cuando se agrega otra campo a la fila o columna, se crea una relacin de grupo entre los campos, que debe ser
coherente y tener lgica. Se debe pensar en la relacin de que en un grupo hay muchos grupos pertenecientes al
mismo, con lo cual se define una estructura jerrquica.

Suprimiendo Subtotales y etiquetas


Hay situaciones en que se quiere agregar un grupo mas pero no se quieren ver los subtotales del mismos, con lo
cual, se debe seleccionar el grupo del nivel superior, y se habilita o no la opcin para suprimir los subtotales.
Del mismo modo sucede, para suprimir las etiquetas o descripcin del grupo.
Por ejemplo, queremos mostrar las ventas de nuestros clientes por los productos. Definimos entonces, como fila
a los clientes, como columnas a los productos y como campo a sumarizar las ventas. Ahora bien queremos ver a
los clientes ordenados categora pero no nos interesa el subtotal de la misma, ni cual es la categora de los
clientes con lo cual en este caso utilizaremos las dos opciones mencionadas.

Mejorando la apariencia de un Cross Tab


Es muy fcil darle un buen formato al Cross Tab ya que cada elemento es un objeto, y se los puede tratar de
forma independiente, inclusive dndole un formato condicional.

Importante
A pesar de que tanto las filas como las columnas, estn conformadas por grupos, no se puede utilizar la
funcionalidad del Drill Down. Para esto lo que se puede hacer es utilizar una combinacin de grupos del reporte
con Cross Tab.
As como mencionamos la gran utilidad que tiene este objeto, al hacer descomponer un valor en forma variable
tanto en las filas como en las columnas, una gran desventaja del mismo es que no se pueden calcular porcentajes
en los mismos. De existir la necesidad de hacerlo y si se trabaja con una base SQL, podramos utilizar un Stored
Procedure, que calcule los valores y los porcentajes y utilizar el Cross Tab simplemente para mostrar los datos
calculados por el SP.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

27

Subreportes
Algunos problemas que no se pueden resolver con reportes tradicionales:

Una lista de ordenes por clientes y por mes , que tambin contenga los 5 productos mas vendidos del
mes, sin importar los clientes.
Un reporte basado en un pc-style database que no se puede linkear, debido a que no hay campos
indexados.
Un reporte que contenga informacin de una tabla, que no contengan un campo que pueda ser linkeada
con otra y necesitemos mostrar la informacin en un solo reporte.

Mediante los Subreportes se pueden resolver estas situaciones


Un Subreporte, es un reporte que aparece dentro de otro reporte como un objeto. Cada subreporte, se puede o
no, disear en forma separada, y puede tener o no, datos de otras bases.
No existe limitacin alguna en la cantidad de subreportes que un reporte pueda tener, pero si existe la limitacin
de que un subreporte contenga otro subreporte.
Cuando se inserta un subreporte se puede usar la opcin de Underlay Following Section para que aparezca la
informacin al lado de los datos del Reporte Principal.
En sntesis, los subreportes son reportes que se insertan dentro de otro reporte ya existente. Ahora bien al hacer
esto tenemos diferentes posibilidades en cuanto a la relacin que exista entre ambos reportes y a la forma de
ejecucin del subreporte.
En cuanto a la relacin, encontramos dos tipos diferentes de subreporte:

Subreportes Unlinked
Son los que se manejan completamente separados del Reporte Principal y no hay nada que los una.

Subreporte Linkeados
Estos tipos de reportes son controlados por el reporte principal. Es decir, los subreportes devuelven y/o dan
formato a la informacin sobre la base de un campo del reporte principal que funciona como parmetro para el
subreporte. Esto se realiza mediante un link entre el Reporte Principal y el Subreporte.
Este tipo de link hace lo siguiente: pasa datos del Reporte Principal al Subreporte, el cual lo almacena en un
campo parmetro, para luego utilizarlo donde corresponda.
Es por ello, que cuando se desarrolla el subreporte por separado, como un Reporte Normal, al hacer una vista
previa del mismo, aparece la ventana para ingresar el valor del campo parmetro, y una vez incorporado al
Reporte Principal como subreporte y realizado el link, no lo solicita ms.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

28

Otros de los benficos de hacer link entre reportes, es poder hacer links entre las tablas que componen ambos
reportes, mediante la utilizacin de frmulas, si es que los campos mediante los cuales queremos establecer la
relacin son de diferentes tipos de datos.
En cuanto a la forma de ejecucin, tambin encontramos dos tipos diferentes de subreportes:

En demanda Vs. In place subreports


Por default el subreporte se procesara cada vez que aparezca en el Reporte Principal. Esto puede hacer que si un
subreporte que esta ubicado en un Group Footer, se procese, tantas veces como veces que aparezca esa seccin,
por lo cual se hace menos performante.
Para eliminar esta situacin, hay una opcin cuando se crea el subreporte para que este sea en demanda. En
demanda significa que el subreporte va ser calculado cuando el usuario quiera, y no cuando se calcule el
Reporte Principal.
La forma que escojamos para trabajar con los subreportes, depende de diferentes aspectos, como ser, si el
reporte y el subreporte tienen cierta relacin en cuanto a la informacin, si el reporte requiere que la
informacin sea On-Line o no, la cantidad de registros que deben consultar; todos estos aspectos influyen en la
decisin en la forma de ejecucin de los subreportes

Pasando Variables entre reportes


Hay dos mtodos para pasar informacin entre el Reporte Principal y el Subreporte, a travs de campos
parmetros o a travs de las variables shared
Si por el contrario queremos pasar informacin del Subreporte al Reporte Principal la nica forma que tenemos
para hacer esto es mediante las variables shared.
Para realizar este tipo de pasaje de informacin, hay ciertos pasos que se deben seguir:
1) Mediante una frmula, se debe declarar la variable de alcance Shared en el Reporte Principal
2) En otra frmula o en la misma frmula creada en el paso 1, se le debe asignar un valor a la variable
en el Reporte Principal para blanquear el valor de la misma.
3) Ya en el Subreporte, con otra frmula, se la debe invocar o hacer referencia. Esto se realiza de la
misma forma en la que fue creada en el punto 1.
4) En la misma frmula, se le asigna el valor del Subreporte que se desea pasar al Reporte Principal
5) Y por ltimo, en el Reporte Principal, se genera otra frmula, donde haga referencia a la variable y
tome el valor de la misma

Observaciones:

Los pasos 1 y 2, deben estar en secciones anteriores a la seccin donde se encuentra el subreporte y el
paso 5 debe estar en una seccin posterior a la seccin donde se encuentra el subreporte.
Este tipo de pasaje de informacin no funciona en subreporte que son en demanda, debido a que no se
ejecutan hasta que el usuario lo requiera, por lo tanto en el reporte principal no se contara con dicha
informacin, aun luego de que se ejecute, ya que al hacerlo es en una instancia diferente.

=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

29

Grficos
Al crear grficos hay que tener dos cosas en cuenta:

Una es el Chart Type, que se refiere al tipo de grafico elegido para representar los datos.
El Char Layout, se refiere a los datos que van a ser usados, si viene de la seccin de detalles, de
sumarizaciones de grupos.

Los tipos de grficos ms usados son:


BAR: El grafico de barras , sirve por ejemplo, para comparar un grupo de otro, donde cada barra representa a las
distintas sumarizaciones de los grupos.
LINE: Muestran la tendencia en el tiempo a travs de una lnea. Sirve para reportes con muchos grupos.
AREA: Es igual al grafico de lneas, pero con la parte de debajo de cada lnea pintada de un color. No sirve para
mltiples grupos ya que se superponen.
PIE: Es el clsico grafico de tortas donde cada porcin, por ejemplo puede representar un porcentaje.
Doughnut: es igual al grafico de tortas pero tiene un hueco redondo en el medio que representa el Grand Total;
3-D Raiser: Es la versin en tres dimensiones del grfico de barras. Son muy buenos para usar con los Cross
Tab ya que te permiten ver la informacin por una dimensin o por la otra.
3-D Surface: Es la versin del grafico de reas en tres dimensiones. Tambin sirven para los Cross Tab
Es importante entender la diferencia entre un grafico de grupo o de rea, y saber donde puede ser colocado en el
reporte.
Un grafico siempre debe ser colocado en al menos un nivel mas alto de los datos que esta representando. Un
Detail Chart debe colocarse al menos en un Group Footer o Header, o en el Report Footer o Header. Un Group
Chart debe ser colocado al menos, en el Report Footer o Header, o en un nivel superior si existen mltiples
niveles de grupo. Nunca se puede poner un grfico en la seccin de detalle. Los grficos basados en Cross Tabs
o en OLAP, no deben cumplir con el requisito de ser colocados en un nivel superior.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

30

Chart Expert
El Chart Expert facilita la construccin de reportes, donde el Type Tab contiene las distintas opciones de tipos
de grficos, el Data Tab permite elegir de donde se va a nutrir de informacin el grfico.
Si se selecciona un Group Chart, es condicin necesaria que adems de existir un grupo exista algn subtotal o
una sumarizacin, para poder hacer el grfico. Se puede hacer grficos con mltiples niveles de grupo. Con esta
opcin se pueden generar diferentes grficos para los distintos niveles de la jerarqua e ir profundizando la
informacin con el mtodo de Drill-Down.
Si se selecciona un Advance Chart , se pueden crear grupos invisibles, o sea que no aparezcan en el Group Tree,
pero que si este en el grfico con la opcin On change of. Se puede usar la opcin de los Top/Botton N en
este tipo de grficos, cambiar los tipos de sumarizaciones, ordenar el orden del grupos invisibles.
Si se selecciona Cross Tab Chart, debe haber un objeto Cross Tab en el reporte, quedando muy bien los grficos
en 3-D.
Si se selecciona un grfico OLAP debe haber un OLAP Grid. Es muy parecido a crear un Cross Tab Chart,
quedando muy bien los grficos en 3D.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

31

Chart Analyzer
Sirve para visualizar el grfico y darle formato. A lo nico que hay que prestarle atencin, cuando se usa el
Chart Analyzer para dar formato, es a replicarlo al resto de los grficos si es que hay ms de uno. Lo que suele
ocurrir es darle formato a un grafico, de algn grupo en particular y luego al ver el mismo grfico, para otro
grupo, no ver los cambios realizados recientemente y pensar que se borraron.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

32

Anexo A: Forma en que Crystal Reports genera los reportes


Crystal Reports usa un mtodo de tres pasadas para elaborar los informes. Las siguientes secciones describen lo
que sucede durante cada paso de este proceso.

Qu es una pasada?
Una pasada es un proceso que Crystal Reports usa cada vez que se leen o se manipulan los datos. Dependiendo
de la complejidad del informe, Crystal Reports puede hacer 1, 2 o 3 pasadas sobre los datos. Esta funcin
permite complejas tareas de elaboracin de informes y manipulacin de frmulas.

Previa n 1
Al observar una vista previa de un informe, los primeros elementos que se evalan son las frmulas
constantes. Las frmulas constantes son aquellas que tienen un valor constante durante todo el informe. Es
decir, no cambian de un registro a otro. Por ejemplo, 100* 30 sera una frmula constante. Las frmulas
constantes se evalan al comienzo del proceso de generacin de impresin y no se vuelven a evaluar. Este
proceso se conoce como BeforeReadingRecords. Si ubicara un campo de frmula constante (es decir,
100*30) en la seccin Detalles, el resultado sera 3.000 para cada registro que se muestre.

Pasada n 1
Despus que se ha producido el proceso BeforeReadingRecords, Crystal Reports comienza a leer los registros
de la base de datos. Durante el proceso de lectura de registros, ocurrir lo siguiente:
Recuperacin de registros. Donde la posible seleccin y ordenamiento de registros se transfieren a la
base de datos en este paso.
Evaluacin de frmulas recurrentes. Estas frmulas contienen campos de base de datos, pero no
contienen referencias a subtotales o informacin de resumen. Este tiempo de evaluacin se conoce como
WhileReadingRecords. Las frmulas que contienen referencias a subtotales o informacin de resumen
se procesan en la segunda pasada.
Aplicacin local de la seleccin de registros. Si la seleccin de registros es demasiado compleja para
transferirla a la base de datos, Crystal Reports se encarga de aplicarla en este paso.
Ordenamiento, agrupamiento y clculo de totales. En este paso, Crystal Reports ordena los
registros, los separa en grupos y luego calcula los subtotales y resmenes necesarios para cada grupo.
Generacin de tablas cruzadas, grficos y mapas. En la Pasada n 1 slo se generarn las tablas
cruzadas, los grficos y los mapas que estn basados totalmente en campos de bases de datos y frmulas
recurrentes. Si estos objetos contienen totales acumulados o frmulas PrintTime, se generarn en la
Pasada n 2.
Almacenamiento de datos guardados. Despus de terminar el proceso de clculo de totales, todos los
registros y totales se almacenan en la memoria y en archivos temporales. Crystal Reports no lee la base
de datos nuevamente, sino que utiliza los datos guardados durante todo el procesamiento posterior.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

33

Pasada previa n 2
Durante la Pasada previa n 2, Crystal Reports ordena los grupos del informe para lograr un agrupamiento
jerrquico o N superiores/inferiores. Los registros no se leen en este proceso, en cambio Crystal Reports slo ve
las instancias de grupo de la Pasada 1 y toma los N superiores como apropiados, o bien ordena los grupos segn
la configuracin especificada de agrupamiento jerrquico.

Pasada n 2
Crystal Reports realiza la segunda pasada por los datos para dar formato a las pginas. A las pginas se les da
formato a la orden. Esto significa que Crystal Reports no dar formato a una pgina hasta que el usuario lo
indique o hasta que lo requiera el recuento total de pginas en la Pasada n 3. Durante el proceso de dar formato
a las pginas, Crystal Reports realiza lo siguiente:
Frmulas de seleccin de grupos.
Totales acumulados.
Clculo de frmulas marcadas como WhilePrinting Records. Estas frmulas contienen referencias a
los subtotales o a la informacin de resumen, tambin conocidas como frmulas PrintTime. Este
tiempo de evaluacin se conoce como WhilePrinting Records.
Tablas cruzadas, grficos y mapas. Las tablas cruzadas, los grficos y los mapas que incluyen totales
acumulados o frmulas PrintTime, y los grficos que estn basados en tablas cruzadas se generan en la
Pasada n 2.
cuadrculas OLAP.
Subinformes.
Generar pginas a la orden.
Nota: Puede que los subtotales, los totales generales y los resmenes parezcan incorrectos si el informe tiene
una frmula de seleccin de grupos. Esto ocurre porque los totales generales y los resmenes se calculan
durante la Pasada n 1, pero la frmula de seleccin de grupos vuelve a filtrar los datos en la Pasada n 2.
Los campos de totales acumulados se pueden utilizar en lugar de los resmenes para obtener el total de datos en
informes que contengan una frmula de seleccin de grupos.

Pasada n 3
En la tercera y ltima pasada, se determina el recuento total de pginas. Esto se aplica a los informes que
utilizan los campos especiales de nmero total de pginas o Pgina N de M.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

34

Diagrama de flujo de informes de pasada mltiple

Nota: Aunque los subinformes aparecen en la Pasada n 2 en el diagrama de flujo, se pueden usar subinformes
bajo demanda para asegurarse de que el informe principal sigue siendo un informe de una sola pasada. Con los
subinformes a la orden, Crystal Reports todava tiene que hacer una segunda pasada sobre los datos; sin
embargo, esta segunda pasada no empezar hasta que usted profundice en el subinforme. En consecuencia,
puede aumentar el rendimiento de los informes que contienen subinformes mediante el uso de subinformes a la
orden.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

35

Anexo B: Haciendo reportes desde bases de datos SQL


Generalmente las grandes empresas tiene sistemas de bases de datos Cliente/Servidor, como ser: Microsoft SQL
Server, Oracle, Sybase, Informix, IBM DB2.

Logearse a SQL Database


El primer paso antes de conectarse a la base, es seleccionar la forma de comunicarse con ella, para ello, existen
dos metodos:

Drivers de Acceso Directo


Crystal Reports provee drivers de acceso directo a las bases de tipo Cliente/Servidor mencionadas
anteriormente. El driver usa los mtodos de comunicacin nativa provistos por los vendedores de bases. Para
usar estos drivers se requiere tener instalada el cliente del software especifico.
Hay 2 ventajas de usarlos: La primera es que como hay pocas capas de protocolos de comunicacin, puede
haber mayor performance; y la segunda, es que provee mayor flexibilidad para crear sentencias SQL
especificas. Tambien incluye conexin nativa Outlook, exchange, Lotus Notes.

ODBC
Microsoft diseo un mtodo de comunicacin llamado ODBC para conectar una PC cualquiera a algn Server
de datos especfico. Cualquier base de datos que provea un ODBC para Microsoft puede ser reporteada por
Crystal. Al instalar Crytal se instalan lso drivers de ODBC mas comunes del mercado.
A traves del Data Explorer podemos elegir el driver con el cual nos queremos comunicar con la base y luego
nos logeamos. Al logearse aparecern las Tablas, Stored Procedures, Vistas, con las cuales podemos desarrollar
un reporte. Hay una opcin en File/Options que permite seleccionar que queremos ver al conectarnos a una
base.
Una vez logeados al servidor, permanecemos conectados aunque cerremos el reporte.
Para deslogearse hay que cerrar la conexin a travs de la opcin Database/Log On/Off Server... del menu de
Crystal Report.

Cambiar un reporte de una base PC Style a una Cliente/Servidor


Para cambiar un reporte desarrollado en Acces a una base idntica pero en SQL Server u Oracle, hay que
cambiar el driver de conectividad. Para ello hay que ir a Database/Convert Database Driver.
Si los campos difieren en la sintaxis, se abrir una ventana para mapear los campos de las tablas viejas con los
campos de las tablas nuevas
Cambiar de un ODBC a otro ODBC o pasar de una tabla a otra de diferente nombre pero de igual estructura hay
que ir a Database/Set Location y elegir el nuevo ODBC. Tambin puede ser que haya que mapear los campos.

=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

36

Linkeando Tablas
Cuando se construye un reporte con ms de una tabla, Crystal abre una venta llamada Visual Linking Expert y
automticamente linkea los campos de las tablas que tengan los nombres iguales (Desde File/Options se puede
deshabilitar esta opcin y evitar el linkeo automtico).
Linkear consiste en elegir un campo de una tabla y relacionarlo con otra, permitiendo a la segunda tabla seguir a
la principal a medida que los registros son ledos uno por uno.
Para linkear manualmente hay que elegir un campo desdeuna tabla y arrastrarlos y soltarlo Hacia otra
campo de otra tabla, obviamente debern coincidir ambos campos en el tipo de dato. Desde se identifica con
un bloque y Hacia con una flecha.
Si se requiere agregar una tabla ya existente, Crystal esto lo premite, pero hay que asignarle un alias.
Es muy fcil crear un link que no devuelva errores pero que cuando se calcule el Reporte, este devuelva un
resultado incorrecto.

Diferencias de Linking entre PC-Style y SQL Databases


Como primer diferencia las tablas de tipo PcStyle tienen que tener campos indexados para poder linkearlos.
Crystal requiere que el campo hacia es el que obligatoriamente tiene que estar indexado.
Los ndices aceleran el tiempo de bsqueda y mejoran la performance del reporte. Para reconocer los campos
indexados, Crystal coloca un flecha al costado del campo, si hay mas de un campo, estos son de diferentes
colores.
Cuanto mayor nmero de campos indexados mayor posibilidad de linkear tablas tendremos, sin embargo
muchos ndices incrementan el tamao de la base.
Cuando se usan SQL databases con conectividad nativa o via ODBC, no aparecen los campo indexados con la
flechita de color al costado, y tampoco existe el requerimiento de que el link Hacia tiene que estar indexado.
Igualmente es necesario indexar los campos y tener conocimientos de ellos para mejorar la performance del
reporte.

Usando mltiple tipos de base de datos en un mismo reporte


Crystal Reports no limita la cantidad de bases que se pueden usar por reporte, con lo cual, se pueden combinar
distintas bases ya sea SQL databases o PcStyle.
Para poder hacer esto primero se debe conectarse a una base, y luego en el Visual Linking Expert, agregar las
tablas de las otras bases.
De todas formas, hay ciertas excepciones. Si se hace un join entre dos tablas de distintas fuentes de datos
ODBC, como por ejemplo tablas de Oracle y tablas de SQL Server, solo se pueden linkear campos de tipo


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

37

string. O si, se usan tablas de diferentes tipos de base de datos, aparecer un mensaje indicando que el reporte
esta usando mas de un driver y hay veces que el reporte no funciona bien.

Tipos de Join
Cuando se linkean dos tablas, se debe considerar los registros que van a devolver. A continuacin se describe un
ejemplo como para entender mejor cada caso:
Nombre de Empleado
Karen
Renee
John
Carl
Denise
Numero de Departamento
8
13
17
4
25

Numero de Departamento
17
25
8
13
32

Salario
32500
37500
85000
24000
125000

Nombre de Departamento
Executive
Mail Room
Human Resources
Finance
Information technology

Existen dos inconsistencias. Por un lado, Denise no tiene un registro en la tabla de Departamentos que coincida
con su numero de departamento, y el departamento de Finanzas no tiene ningn empleado asociado. Se dice que
entre estas dos tablas no hay integridad referencial.
Los DBO se tendran que encargar de asegurar la integridad referencial. Si esto no ocurre igualmente Crystal lo
puede tratar.
Supongamos que quiero hacer un listado de lo que cobra cada empleado agrupado por departamento, para ello,
primero debera linkear las tablas por el campo Numero de Departamento
Como existen varios tipos de Join el resultado del reporte puede ser diferente:
Equal Join: Tambin es conocido como inner join. Incluye los registros de las dos tablas solo cuando los
campos que se joinean coinciden en sus valores, con lo cual, el resultado del mismo sern 4 registros. Crystal
Reports por default utiliza este tipo de join.
Lefter Outer Join: Incluye todos los registros de la tabla de la izquierda, y solo los registros de la tabla de la
derecha que al joinear sean iguales a la tabla de la izquierda. En este caso, como resultado obtendremos 5
registros, pero el de Denise le faltar el nombre del Departamento.
Right Outer Join: Incluye todos los registros de la tabla de la derecha, y solo los registros de la tabla de la
izquierda que al joinear por un campo sean iguales a la tabla derecha. En esta caso, como resultado obtendremos
5 registros, pero el registro de Denise no ser devuelto, pero si el Departamento de Finanzas que no tiene
ningn empleado asociado.

=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

38

Se pueden modificar los Joins de las tablas solo para las SQL databases, para reportes sobre Pc-Style database
son por default lefter outer join aunque este seleccionada la opcin de equal join.

Tabla de la Izquierda y Tabla de la derecha


La tabla Desde donde sale el link es la tabla de la izquierda, y la tabla Hacia donde va el link es la derecha.
Si el tipo de Join que se utiliza es un Equal , no es importante seleccionar cual ser la tabla de la izquierda y
cual de la derecha, ya que da lo mismo. En este caso simplemente hay que asegurarse la integridad referencial
entre ambas tablas.
En cambio si se usa otro tipo de join hay que examinar las relaciones entre las tablas. Comnmente se las
conoce como una relacin de una-a-una o de una-a-muchas. Si hay solo un registro que coincida entre las
dos tablas la relacin es de una-a-una. No importa cual es la izquierda y la derecha.(Es el caso del equal join)
Por el contrario, si en una tabla hay muchos registros que coincidan con un solo registro de la otra tabla, la
relacin es de una-a-muchas.
En un modelo estrella, la Fact table, sera la de la izquierda y las respectivas Dimensiones sern la de la
derecha.

Sentencias SQL
Crystal Report provee de una herramienta, Crystal SQL Designer, para escribir sentencias SQL, se almacenan
como archivos .qry y despus se pueden utilizar para el desarrollo de los reportes.
La sintaxis de SQL cambia dependiendo la base y si la conexin es nativa o si usa ODBC. Esto permite copiar
Query armados con otras herramientas y reutilizarlos con Crystal. Lo que no se puede hacer obviamente son
Insert, Delete y Update.

Usando SQL Stored Procedures


Un SP es un query almacenado en la base de datos.
Un reporte puede estar basado en tablas o en un SP, pero nunca por ambos al mismo tiempo, de requerir esto la
solucin esta dada con la utilizacin de Subreportes.
Al incorporar el SP como fuente de datos del Reporte, y si este contiene parmetros, Crystal los reconoce
automticamente como Parameter Fields.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

39

Usando SQL Expresin Fields


Una expresin SQL es como una frmula, excepto que esta armada nicamente por campos y funciones de la
base. La importancia de su utilizacin, esta dada en que la expresin es evaluada en el Servidor de Base de
Datos y el trabajo no lo hace Crystal Reports, ganando as en performance.

Agrupando en el Servidor
Otras de las ventajas que obtenemos al trabajar con SQL Database, es la posibilidad de agrupar en el Servidor y
que este se encargue de las sumarizaciones o de los subtotales.
Para ello, hay que habilitar la opcin en Database / Perform Grouping on Server y cumplir una serie de
requisitos:
a) Al menos debe haber un grupo en el reporte
b) La seccion Detail debe estar oculta, justamente para no mostrar informacin de detalle
c) En el Group Footer o Header solo hay que incluir las sumarizaciones y el campo del grupo, si se incluye
algn campo o frmula el servidor le debe mandar todos los registros.
d) No se puede agrupar en base a frmulas. Para eso usar expresiones SQL
e) Si hay Running Total deben estar basados en campos sumarizados y nunca en detail fields.
f) El reporte no puede contener sumarizaciones de tipo Average o Distinct Count, ni Top/Botton N, ya que
SQL no las soporta.
g) El orden de los grupos debe ser ascendente o descendente. No se puede especificar el orden.
h) Si se agrupa por campos fecha, se debe hacer el grupo por cada dia, y si es por tiempo se debe agrupara
por cada segundo.

Efectos del Drill Down


Como el Detail Section se debe suprimir o ocultar, cuando se hace drill down, lo que hace Crystal Reports es
generar otro query en el momento y se lo envia al servidor para que le devuelva los registros que pertenecen a
ese grupo.

Consideraciones de Performance
Como regla general de Reporting, hay que tratar que el servidor sea el encargado de filtrar la informacin, y si
es posible de agruparla, ya que es mas veloz.
Para verificar que esta calculando el servidor y que esta calculando Crystal Reports, hay que observar cual es el
Query generado por Crystal que se enva al Servidor, para ello ir a Database/Show SQL Query.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

40

Anexo C: Otras Consideraciones


Instalacin Crystal Reports

Si primero instal Crystal Reports 10 en un equipo, no podr instalar Crystal Reports 9 o 9.2 en el
mismo equipo en instalaciones compartidas. Instale primero Crystal Reports 9.x para ejecutar ambas
versiones compartidas.

Antes de ejecutar los paquetes de instalacin para la creacin de informes de Java, compruebe que tiene
instalado Java Runtime Environment (JRE).

La instalacin de los controladores de la base de datos a peticin no funciona con informes basados en
vistas empresariales.

El componente de creacin de informes de Java no admite el controlador JavaBean.

VCL de Delphi para Crystal Reports slo est disponible en el sitio Web Zona de desarrolladores de
Crystal Decisions.

Si instala Crystal Reports 10 en el mismo equipo que Web Component Server (WCS) de Crystal
Enterprise 9, el escritorio Web de Crystal Enterprise que se est ejecutando en este WCS se detendr.
Tendr el mismo problema cuando instale Crystal Reports 9 en el mismo equipo que WCS de Crystal
Enterprise 10.

Instalacin Crystal Reports for .NET

Una vez que haya desinstalado Crystal Reports 10, aparecer una ficha de "Crystal Reports" en el cuadro
de herramientas de Visual Studio .NET. Puede quitar esta ficha con seguridad.

Puede que el componente de Crystal Reports para .NET no funcione correctamente despus de
desinstalar Crystal Reports 10 de Visual Studio .NET. Para restablecer la funcionalidad, ejecute la
funcin de reparacin en la instalacin de .NET.

Si instala Crystal Reports 10 y ejecuta de nuevo la instalacin de Visual Studio .NET 2002/2003 (VS
.NET 2002/2003) activando la opcin "Crystal Reports para Visual Studio .NET", se producirn
problemas. En el cuadro de herramientas, aparecern los controles tanto de Crystal Reports 10 como de
VS .NET 2002/2003, pero VS .NET 2002/2003 controlar la generacin de cdigo, la publicacin como
servicio Web, etc. Para que Crystal Reports 10 recupere el control de IDE, tendr que volver a ejecutar
la instalacin de CR10 en modo de reparacin. Para actualizarse correctamente a VS .NET 2002/2003
sin Crystal Reports 10, desinstale CR10 y vuelva a ejecutar la instalacin de VS .NET 2002/2003 en
modo de reparacin.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

41

Actualizacin

Ya no se admite la creacin de informes desde Crystal Dictionaries, Crystal Queries o Crystal


InfoViews. Puede abrir informes creados en versiones anteriores y establecer las ubicaciones de orgenes
de datos en las tablas de comandos. No se pueden actualizar estos informes.

Los informes compilados no son compatibles en Crystal Reports 10.

Las funciones IsBusinessDay y NextNBusinessDays del lenguaje de frmula no son recomendables y no


deberan utilizarse; sin embargo, el Taller de frmulas puede mostrar las funciones del rbol Funciones o
reconocer las palabras clave si se escriben directamente en una frmula.

Los componentes de la actualizacin de Borland C#Builder no estn disponibles en el CD de Crystal


Reports Advanced o Developer. Estos componentes estarn disponibles en el siguiente sitio Web:
www.crystaldecisions.com.

En esta versin, no se admite la creacin de informes basada en conexiones usando conjuntos de datos
con parmetros SByte (como ADOPlus).

La versin 10 de RAS COM SDK no admite la creacin de un informe basado en un Objeto de datos
Crystal (CDO).

Una nueva utilidad, el Asistente de migracin del repositorio (CrystalRepoWiz.exe), se instalar como
parte de Crystal Enterprise 10. Esta herramienta se instala en el Administrador de vistas empresariales y
se utiliza para migrar el contenido del repositorio de la versin 9 al nuevo formato de la versin 10.
Podr ejecutarla desde el directorio win32_x86, o seleccionar el Asistente para migracin de Crystal
Repository desde el men del programa de Crystal Enterprise 10.

Compatibilidad con versiones anteriores

Los grficos de embudo son una nueva funcin de Crystal Reports 10. Si crea un informe en Crystal
Report 10 que incluya un grfico de embudo, puede que no sea posible abrirlo en Crystal Reports 9. Para
solucionar este problema, abra el informe en Crystal Reports 10 y cambie el formato por uno que Crystal
Reports 9 pueda reconocer.

Dado que las vistas empresariales son una nueva funcin de la versin 10, los informes basados en estas
vistas no se pueden abrir con versiones anteriores de Crystal Reports.

En esta nueva versin de Crystal Reports se han agregado nuevos campos especiales. Para su referencia,
estos nuevos campos corresponden con los siguientes campos de la versin 9:

Nmero de pgina horizontal corresponde con vertPageNumber en la versin 9.

Nombre de usuario actual corresponde con reportAuthor en la versin 9.

Id. de usuario actual corresponde con vertPageNumber en la versin 9.

Crystal Reports 10 puede gestionar ciertos tipos de datos de manera diferente en la versin 8.5 o
anteriores. Para garantizar que es compatible con versiones anteriores, la versin 10 gestiona los tipos de


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

42

datos de los informes creados en la versin 8.5 y anteriores de la misma manera que se gestionaban los
tipos en estas versiones.
Como resultado, si cambia la ubicacin de la base de datos de un informe creado en Crystal Reports 8.5
o anterior (usando la opcin de men Establecer ubicacin de base de datos) y los tipos de campos de la
base de datos de la nueva ubicacin se gestionan de forma diferente en la versin 10 y en la versin 8.5,
Crystal Reports 10 gestionar los tipos de datos igual que en la versin 8.5 o anteriores. Entre los
ejemplos de tipos de datos que se gestionan de forma diferente en la versin 10 y en la versin 8.5 se
incluyen:

En la versin 8.5 y anteriores, el tipo entero nativo de Oracle algunas veces se trataba como
doble mientras que en la versin 10 siempre se trata un tipo nativo de Oracle como doble.

En la versin 8.5 y anteriores, el tipo de moneda de Access ODBC se trataba como decimal
mientras que en la versin 10 se trata el tipo de moneda de Access ODBC como moneda.

En Crystal Enterprise 10 ya no se admite la creacin de informes sin gestionar.

Notas y limitaciones

Aunque Crystal Reports 10 sea compatible con los valores de parmetros de 64K, no admite las
descripciones de 64K para campos de parmetro.

La opcin de formato Superposicin (situada en la ficha General del cuadro de dilogo Opciones de
grficos) slo est disponible para grficos de barras y columnas.

El carcter '}' es un carcter especial y no se debe utilizar en nombres de bases de datos, frmulas o
campos de parmetro.

Algunas partes de los identificadores de hipervnculos (especialmente, dobles barras diagonales) de las
frmulas de contexto de datos aparecen como texto comentado en el Taller de frmulas.

Cuando utilice un informe OLAP, si el informe contiene parmetros de fila o columna, se deshabilitar
el acceso a la hoja de clculo para evitar que se introduzca en el informe cualquier inconsistencia. Como
resultado, no podr acceder a la hoja de clculo cuando trabaje con un informe OLAP que contenga
cualquier parmetro de fila o columna.

Si actualiza el repositorio en un objeto de comando que no se pueda encontrar, el cuadro de dilogo


Faltan elementos del repositorio no mostrar ningn error. Sin embargo, aparecer un aviso diferente
cuando utilice una copia en cach del objeto de comando.

Crystal Repository no est disponible (y no es compatible) con la edicin Standard de Crystal Reports
10 porque Crystal Enterprise no est incluido en dicha versin.

Cuando selecciona la opcin Diagrama/Mapa fuera de cuadrcula completa en el Asistente de


diagrama/mapa, se omitir la configuracin A cambio de y Subdividido por.

Dado que el cuadro de dilogo Opciones recuerda automticamente la ltima carpeta utilizada, la opcin
Directorio del informe se ha eliminado del cuadro de dilogo Opciones.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

43

En el cuadro de dilogo Opciones de informe, desactive la nueva casilla de verificacin Mantener el


grupo junto en la primera pgina para garantizar que Crystal Reports empieza a imprimir el primer
grupo en la primera pgina del informe, incluso cuando est activada la casilla de verificacin Mantener
el grupo junto.
Nota: Hasta ahora, si el primer grupo ocupaba ms de una pgina, la casilla de verificacin Mantener el
grupo junto haca que Crystal Reports empezara imprimiendo el grupo en la segunda pgina del mismo,
en lugar de imprimirlo en la primera. Si desactiva la nueva casilla de verificacin Mantener el grupo
junto en la primera pgina, podr modificar el comportamiento de la primera pgina del informe.

Para evitar la vinculacin externa, se ha cambiado la vinculacin automtica predeterminada del


Asistente de base de datos para que se realice la vinculacin primero por clave y, a continuacin, por
nombre.

Cuando cambia un parmetro de conexin de datos dinmica, debe llamar a VerifyDatabase antes de
cambiar el parmetro. Error al llamar a VerifyDatabase antes de cambiar los resultados del parmetro en
los datos examinados incorrectos.

Las expresiones SQL pueden acceder a los datos de una columna restringida. Cuando restrinja una
columna, actualice tambin cualquier expresin SQL que acceda a los datos de una columna restringida
para asegurarse de que no se muestran estos datos.

En el Asistente del repositorio, al copiar un grupo de objetos/archivos relacionados de una carpeta a otra
(por ejemplo, de la carpeta original a una nueva carpeta), los nuevos objetos/archivos de la nueva
carpeta todava sealan a los objetos/archivos originales de la carpeta original. Como resultado, los
cambios de un archivo/objeto de la nueva carpeta no afectan a otros archivos u objetos de dicha carpeta.
Por ejemplo, si copia una infraestructura de datos, conexin de datos, elemento empresarial y vista
empresarial de la carpeta original a la nueva carpeta, la nueva copia de la vista empresarial seguir
sealando a la infraestructura de datos, conexin de datos y elemento empresarial de la carpeta original.
Como solucin, exporte los archivos a XML.

Cuando trabaje con un informe que contenga conexiones de base de datos dinmicas, los datos del
informe no se actualizan cuando se cambia de una conexin de base de datos a otra.

Debido a problemas con caracteres internacionales, nicamente podr ver los informes realizados con
Safari 1.0 en ingls.

El registro diagnstico crea informes incorrectamente en la versin 5 y la versin 6 crea informes como
la versin 10.2.

En Crystal Reports 8 y 9, puede incrustar las etiquetas de secuencias y otras etiquetas HTML en sus
informes para permitir la creacin de elementos DHTML en el resultado del visor DHTML. Para
mejorar la seguridad, el comportamiento predeterminado de Crystal Reports 10 es convertir el texto
seguro a HTML. Bajo su responsabilidad, puede activar una clave de registro para el comportamiento
incrustado de HTML. Consulte el artculo de la siguiente pgina Web http://www.netsecurity.org/article.php?id=596 para comprender las implicaciones de no codificar el resultado HTML
de Crystal Reports.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

44

Para que la nueva funcin de creacin de informes asimtrica funcione correctamente con grficos y
mapas, se ha agregado una nueva funcin llamada "Diagrama (o mapa) fuera de cuadrcula completa" en
varias ubicaciones de Crystal Reports. Esta funcin no aparece documentada en la Ayuda en pantalla. Si
no selecciona esta opcin, los grficos y mapas nicamente proporcionan un conjunto de filas de una
nica dimensin en cada eje de fila/columna. Por lo tanto, el grfico o mapa no heredar los filtros
asimtricos aplicados en el punto de vista de la cuadrcula.

Es posible que el visor DHTML Java muestre diagramas y mapas como imgenes EMF (formato de
metarchivo) o como imgenes de mapa de bits.
En las siguientes situaciones se mostrarn imgenes EMF:
1. Cuando el visor se ejecuta en un sistema Windows.
2. Cuando el visor se ejecuta en un sistema UNIX con interfaz.
3. El visor se ejecuta en un sistema UNIX sin interfaz en el que est instalado el JDK 1.4 y en el
que el valor de la propiedad del sistema java.awt.headless es TRUE.
En las siguientes situaciones se mostrarn imgenes de mapa de bits:
4. El visor se ejecuta en un sistema UNIX sin interfaz con la versin JDK 1.3 o anterior.
5. El visor se ejecuta en un sistema UNIX sin interfaz en el que est instalado el JDK 1.4 y en el
que el valor de la propiedad del sistema java.awt.headless no est establecido.
6. El visor se ejecuta en un sistema UNIX sin interfaz en el que est instalado el JDK 1.4 y en el
que el valor de la propiedad del sistema java.awt.headless es FALSE.
En lo que respecta a esta nota, se define "sistema UNIX sin interfaz" como un sistema en el que
no est establecida la variable de entorno DISPLAY. Al contrario, un "sistema UNIX con
interfaz" es aquel sistema en el que la variable de entorno DISPLAY est establecida y en el que
est instalado un sistema X. Puede establecer la propiedad del sistema java.awt.headless si aade
la lnea -Djava.awt.headless="true" a la secuencia de comandos de inicio del servidor de
aplicaciones Web. Si la propiedad java.awt.headless se establece directamente en la pgina JSP
se pueden obtener resultados inesperados.

Integracin con Crystal Enterprise

Para actualizar los objetos de comando de Crystal Repository en un entorno de Crystal Enterprise,
asegrese de que las opciones "Comprobar en la primera actualizacin" y "Comprobar procedimiento
almacenado en la primera actualizacin" estn activadas en el informe original. (Haga clic en Opciones
de informe en el men Archivo de Crystal Reports.)


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

45

Impresin y exportacin

Cuando exporta un informe a formato de Microsoft Excel (slo datos), las columnas de la hoja de
clculo no se ajustan automticamente segn el campo seleccionado en la opcin "Ancho de columna
basado en los objetos". Para que las columnas de la hoja de clculo se ajusten automticamente, debe
activar la opcin Mantener la posicin relativa del objeto.

En la versin anterior de Crystal Reports, la exportacin a formato CSV no anidaba los campos en los
contextos de grupo correctamente. En esta versin, cuando exporta a formato CSV, los campos del rea
de detalles se exportan con los campos de los encabezados de grupo que lo preceden y los pies de pgina
del grupo que lo suceden, en un mismo registro.

Cuando exporta un informe OLAP a formato Excel de la versin 9 o anterior, se le pedir que se conecte
al origen de datos OLAP incluso cuando el informe contiene datos guardados.

Internet Explorer no procesa correctamente el texto justificado despus de exportar un informe a formato
HTML. Este es un problema conocido de Internet Explorer.

Cuando exporta un informe a DHTML como pgina nica, los problemas de algunos exploradores
pueden dar lugar a errores de formato. Como solucin, realice la exportacin a DHTML en pginas
separadas.

Cuando se exporta a Word o a cualquier formato de Microsoft Office y se cumplen todas las
condiciones, puede que la exportacin no muestre algunos datos, porque Microsoft Word o Office
intentar editarlo a travs de las Extensiones de FrontPage. Este comportamiento se puede evitar
desactivando la creacin Web en el servidor.
Condiciones:
1. La aplicacin Web de Windows 2003 Server debe tener activada la Autenticacin de Windows
integrada.
2. El usuario est conectado al equipo cliente como usuario con derechos de creacin en el equipo
del servidor Web.
3. El explorador del cliente tiene la seguridad de Windows integrada activada.
4. El equipo cliente tiene instalado Word o la aplicacin de MS Office.

Acceso a datos

Hay nuevos controladores de base de datos en desarrollo para utilizarlos con los productos de la versin
10 de Crystal en Windows y UNIX. Consulte este vnculo para obtener la disponibilidad:
http://www.crystaldecisions.com/ipl/default.asp?destination=updatedfeatures&language=ES&product=c
rystalenterprise&version=10

La versin 10 de los productos de Crystal ya no incluye la mayora de controladores de base de datos de


ODBC (fabricados por DataDirect Technologies) que se instalaban en anteriores productos de Crystal.
Habr disponibles controladores actualizados de DataDirect ODBC para utilizar con la versin 10 de los

=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

46

productos de Crystal en Windows y UNIX. Consulte este vnculo para obtener la disponibilidad:
http://www.crystaldecisions.com/ipl/default.asp?destination=updatedfeatures&language=ES&product=c
rystalenterprise&version=10

En la barra de herramientas del Explorador de datos de la ventana Asistente de base de datos, una de las
opciones mostradas es Crear nueva conexin. Cuando se expande, proporciona nuevas opciones de
conexin (por ejemplo, ODBC).

Cuando utilice procedimientos almacenados con un controlador ODBC de Sybase, si el nombre del
procedimiento tiene un signo de subrayado ( _ ), el controlador devuelve datatype = null. Como
solucin, asegrese de que los nombres de procedimiento no contienen caracteres de subrayado.

Puede cambiar el origen de datos de muchos informes a la vez cambiando el DSN del sistema ODBC,
pero Crystal Enterprise 10 gestiona esto de forma diferente con respecto a versiones anteriores. En el
cuadro de dilogo Establecer ubicacin, edite la nueva propiedad de tabla
OverriddenQualifiedTableName. Cuando cargue un informe, si est basado en ODBC y tiene formato
CR 8.5 (o anterior), se crea la propiedad de conexin useDSNProperties y se establece como True. Los
nuevos informes creados en la versin 10 establecern esta propiedad como false de forma
predeterminada. (Este propiedad se guardar con el informe.) Cuando esta propiedad se establece como
True, ODBC utiliza SQLConnect en lugar de SQLDriverConnect. Puede cambiar la propiedad
useDSNProperties en el cuadro de dilogo Establecer ubicacin.
Nota: No puede cambiar el DSN del sistema ODBC si el nombre de la base de datos o nombre
propietario contiene caracteres especiales. Puede encontrar problemas con antiguos controladores y con
el cambio de los nombres de sus procedimientos almacenados.

Los datos devueltos por la consulta de la base de datos que contienen caracteres adicionales (como "
hello ") se truncan para excluir espacios adicionales (" hello " se convierte en "hello"). Como resultado,
las consultas de la base de datos que dependen de estos espacios adicionales devuelven datos
inesperados. Utilice una de las siguientes soluciones:
1. Utilice la funcin Trim(). (donde Trim(lookupField)="hello")
2. Utilice caracteres comodn en la consulta. (donde lookupField="*hello*")

Se pueden producir errores al establecer la ubicacin del origen de datos para trabajar con un informe
basado en una vista empresarial con ms de una tabla (guardando el informe como un informe sin
conexin).

Cuando cree un informe de una vista empresarial, si no puede buscar datos si la vista empresarial
contiene restriccin de fila, agregue un campo al informe y, a continuacin, actualice el informe antes de
buscar datos.

Cuando trabaje con un informe basado en una vista empresarial, si necesita cambiar el parmetro del
repositorio o metadatos, debe establecer el parmetro del repositorio y metadatos antes de obtener los
datos. Si obtiene los datos y, a continuacin, cambia el parmetro del repositorio o metadatos, se seguir
utilizando el objeto del antiguo repositorio.


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

47

Cuando se realiza una consulta a una base de datos de Lotus Notes con una consulta que contiene
combinaciones externas anidadas, se generar el siguiente error: "Error al abrir conjunto de filas". Este
error es debido a que el controlador ODBC de Lotus Notes no admite combinaciones externas anidadas.

Cuando cree un vnculo de combinacin externa izquierda en campos de enunciados SQL con tres o ms
tablas de diferentes orgenes de datos, si no hay coincidencia en el primer registro del vnculo, se
devolver una cadena igual a cero o una cadena vaca despus de este vnculo.
Por ejemplo, si hay un vnculo de 4 tablas: A->>>, donde cada tabla es de un origen de datos diferente y
todos los vnculos son combinaciones externas izquierdas del campo del enunciado SQL de cada tabla.
Si no hay coincidencia en el primer registro entre el vnculo A y B, la tabla C y D devolver una cadena
igual a cero o una cadena vaca en el informe.

Cuando cree un informe usando codificacin Unicode (UTF-8) y caracteres japoneses, el controlador
DB2 informar del error al agregar tablas.

Cuando utilice un vnculo inteligente con el controlador ODBC de Oracle, no aparecer un ndice
basado en una expresin porque el controlador ODBC de Oracle no devuelve ndices de expresiones;
como resultado, el ndice no tendr vnculo inteligente.
Cuando utilice el vnculo inteligente con el controlador nativo de Oracle, no aparecer el ndice basado
en una expresin compleja; como resultado, el ndice no tendr vnculo inteligente. Sin embargo, para
los ndices de expresin que son campos de tabla en orden descendente, el vnculo inteligente por clave
se comportar como se esperaba.

Cuando se conecte a una base de datos Sybase usando el controlador nativo de Sybase
(crdb_p2ssyb10.dll), se generar un error si se ejecuta ms de una instruccin SQL en la misma
conexin de base de datos en el mismo momento. El error se genera porque el controlador nativo de
Sybase no puede gestionar varios procedimientos almacenados en la misma conexin. Como solucin,
utilice un controlador ODBC en lugar de un controlador de Sybase.

Crystal Reports 10 no puede abrir informes basados en Infoviews. Si abre un informe basado en
Infoview en Crystal Reports 10, el informe parecer que se abre correctamente pero no se aplicar la
seguridad correcta. Si la funcin Infoview se utiliza para datos importantes seguros, se recomienda que
limite el acceso o distribucin de dichos informes. Consulte la documentacin de vistas empresariales
para obtener ms informacin sobre nuevas funciones mejoradas de seguridad de datos en Crystal
Enterprise y Crystal Reports 10.

Puede que a veces la direccin de la combinacin no se pueda cambiar (por ejemplo: combinacin
externa izquierda). En algunos escenarios de vinculacin, esto significa que no se podr realizar una
consulta. En este caso, el usuario tendr que cambiar el orden de vinculacin. Se generar el siguiente
error: "Error al abrir conjunto de filas. Error de motor de consulta: No se puede realizar la consulta. Se
detect un ciclo de vnculo ilegal."


=RQD&U\VWDOFRP
&U\VWDO5HSRUWV0DQXDO$YDQ]DGR

48

También podría gustarte