Crystal Reports XI - Manual Zona Crystal

Embed Size (px)

Citation preview

Crystal Reports XI: Manual Avanzado

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

1

INDICEIniciando 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

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

2

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

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

3

Iniciando un nuevo reporteSe 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

4

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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

5

Secciones del ReportePara 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 objetosAl 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

6

Utilizando objetos de textosLos 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.

ImportanteLos 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 PerformanceCrystal 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 primerZona-Crystal.com - Crystal Reports: Manual Avanzado 7

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

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

8

Seleccin de RegistrosA 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 guardadosCuando 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

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

9

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 gruposLa 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 PerformanceLa 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

10

Ordenando, Agrupando y SumarizandoOrdenandoCuando 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.

AgrupandoLa 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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.

ImportanteOtra 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 utilizadasSum: 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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-DownLa 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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 NPara 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 gruposNo 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

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

14

Campos de FrmulaLos 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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 frmulasHay 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 TotalEs 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

16

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

17

Formato AvanzadoThe Hightlighting ExpertPermite 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 FrmulasEl 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

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

18

Usos creativos de la propiedad SuppressHay 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.

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

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

19

Formato de las SeccionesLas 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

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

20

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

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

21

ParmetrosLos 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

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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 defaultA 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 DinmicasDesde 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

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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 existentesLas 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 ProcedureEn 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 parmetrosLos 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

25

Objetos Cross TabEl 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 TabLos 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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 etiquetasHay 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 TabEs 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.

ImportanteA 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

27

SubreportesAlgunos 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 situacionesUn 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 UnlinkedSon los que se manejan completamente separados del Reporte Principal y no hay nada que los una.

Subreporte LinkeadosEstos 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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 subreportsPor 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 reportesHay 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

29

GrficosAl 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

30

Chart ExpertEl 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

31

Chart AnalyzerSirve 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

32

Anexo A: Forma en que Crystal Reports genera los reportesCrystal 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 1Al 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 1Despus 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

33

Pasada previa n 2Durante 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 2Crystal 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 3En 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

35

Anexo B: Haciendo reportes desde bases de datos SQLGeneralmente las grandes empresas tiene sistemas de bases de datos Cliente/Servidor, como ser: Microsoft SQL Server, Oracle, Sybase, Informix, IBM DB2.

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

Drivers de Acceso DirectoCrystal 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.

ODBCMicrosoft 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/ServidorPara 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

36

Linkeando TablasCuando 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 DatabasesComo 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 reporteCrystal 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

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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 JoinCuando 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.38

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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 derechaLa 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 SQLCrystal 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 ProceduresUn 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

39

Usando SQL Expresin FieldsUna 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 ServidorOtras 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 DownComo 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 PerformanceComo 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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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:o o o

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

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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:o

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.

o

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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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.

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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.)

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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

Zona-Crystal.com - Crystal Reports: Manual Avanzado -

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 in