Crystal Report - CrystalReport tarda muchisimo desde que recibe el dataset hasta mostrar informe con datos

 
Vista:

CrystalReport tarda muchisimo desde que recibe el dataset hasta mostrar informe con datos

Publicado por Rafa (1 intervención) el 22/12/2011 11:20:34
Buenos dias:
Llevo bastante tiempo dandole vueltas a este problema, el tema es que desde que el proceso de llenar el dataset termina y hago el ShowDialog del formulario con el CrystalReportViewer, hasta que el informe se muestra ya "pintado" con los datos del dataset pasa demasiado tiempo. Algo que me desconcierta es que para sacar un informe de unos 60 registros tarde +- 1 minuto, para unos 250 registros se va ya a +- 9 minutos, de 440 registros +-23 minutos y el mayor que he sacado que es de 660 ha tardado 50 minutos, como veis no está en absoluto compensado el número de registros a tratar con el tiempo que tarda. El informe muestra una serie de modelos (cabecera de grupo) con sus datos (marca, nombre, etc) y para cada modelo y almacen muestra el desglose de stocks y ventas por tallas.

Las secciones tienen sus formulas para suprimirlas o no en función de lo escogido por el usuario en el Form principal, pero eso por las pruebas que he echo no influye en el tiempo de escritura del crystal, ni los campos calculados en las formulas del crystal, ni los sumatorios, porque he probado a calcularlo todo por codigo antes de hacer el llamar al crystal, pero no gana tiempo ninguno. El proceso de recorrer los cursores para llenar el dataset es bastante rápido y no me explico como puede tardar tanto en "pintar" los datos si ya están todos recopilados.

Se me debe escapar algo supongo, porque lo que no es normal que para 60 registros "escriba" a modelo por segundo, y para 600 tarde casi 8 segundos por cada modelo.


Al formulario que contiene el CrystalReportViewer, en el constructor, tengo las siguientes líneas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public Informe(DataSet listadoModelos)
 
        {
 
            InitializeComponent();
 
            CrystalReport3 cR1 = new CrystalReport3();
 
            cR1.SetDataSource(listadoModelos);
 
            this.crystalReportViewer1.ReportSource = cR1;
 
            crystalReportViewer1.ExportReport();
 
        }


Y desde que muestra la ventana de exportación del reporte hasta que sale el mensaje desde que la exportación se ha realizado es donde se demora tanto, por eso pienso que el problema reside en algo que no estoy haciendo bien en el crystal, también decir que he probado a quitar la ultima línea, la de exportación para ver si ese era el problema, pero tarda lo mismo, en exportarme a pdf el informe de 660 registros(unas 210 paginas) me tarda sobre 2 minutos, asi que para lo que busco me resulta practicamente inapreciable.

Por si sirve de algo, la versión que utilizo es del Visual Studio 2008 es la 9.0.30729.1 SP y el Crystal es el mismo que viene integrado. La base de datos es de sqlServer 2008 R2

Un saludo y gracias por vuestro tiempo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder