none
Report viewer relentiza el programa

    Pregunta

  • Hola:

    No se si alguien podrá echarme una mano. Tengo un proyecto en el cual hay varios informes hechos con el report viewer. Los informes se muestran sin problemas y de manera rápida. Tampoco tienen que traer muchos datos. La cuestión es que una vez que, en ejecución, visualizo un reporte, el resto del programa se relentiza, a pesar de que el reporte esté cerrado y los recursos liberados.

    En principio pasa con cualquier reporte que tenga un enlace a datos (datasets con sql), aunque se traiga 2 datos.

    Agradecería cualquier sugerencia de porqué puede ser.

    Saludos

    Eduardo
    martes, 29 de septiembre de 2009 19:03

Todas las respuestas

  • hola

    Podrías realizar algunas verificaciones

    - por ejemplo validad que todos los objetos que cargan los datos son cerrados correctamente, para ello recuerda que si usas el bloque "using"
    no has aclarado en que lenguaje programabas igual en vb.net tambiene sta el bloque using

    - puedes usar esta tool YourKit Profiler 4.5 for .NET
    para validar donde puede estar el consumo de memoria


    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 30 de septiembre de 2009 2:10
  • Hola:

    Gracias por tu respuesta:

    Programo de VB. En principio creo que no es un problema de memoria. He mirado esta viendo la memoria gastada por el proceso en el administrador de tareas conforme voy ejecutando la aplicacion y el gasto de esta no es excesivo para la memoria del equipo: entre 50 y 100 Mb para 4 GB de RAM. También parece que se libera correctamente cuando voy cerrando y abriendo ventanas, y basta en cualquier momento con minimizar y volver a maximizar para que se libere todo a lo bestia (hasta una 20MB), pero aun así la ejecución del programa sigue relentizada.

    Ayer hice unas pruebas, con un formulario nuevo, un reportviewer nuevo y un reporte nuevo al que fuí añadiendo cosas para ver donde se petaba exactamente. Si el informe esta vacío no ralentiza el programa, y luego le fui añadiendo una etiqueta, un campo enlazado a MySettings y una tabla pequeña enlazada a un dataset pero tampoco se relentizaba. Lo malo es que en los informes no tengo mucho mas. Así que estoy bastante confundido. Hoy seguiré haciendo pruebas a ver si doy con ello. Creo que tiene que ver mas con como el compilador maneja que lo informes son recursos incrustados: algo debe haber que cuando se cierra no se "desincrusta" adecuadamente. En los mensajes de la depuración tampoco dice nada útil.

    Algo parecido me pasó utilizando la propiedad "opacity" de los formularios, hasta que al final la he tenido que dejar de utilizar. Al utilizarla en los formularios (para que la transición de pantallas en la apertura de estos fuera mas suave) relentizaba el programa una barbaridad. Vamos con una diferencia por ejemplo que un conjunto de 7 formularios que se abren con un boton, en condiciones normales se abre en 3 segundos y con opacity podía llegar a los 45. Con el reportviewer me pasa lo mismo, la apertura de estos formularios tras haberlo utilizado y cerrado puede llegar a los 16-20 segundos.

    Saludos.

    Eduardo
    miércoles, 30 de septiembre de 2009 9:34
  • Hola:

    He estado investigando y ya se donde se me produce el problema.  Se produce cuando el informe tiene algún tipo de expresión o hace referencia a un parametro. Por ejemplo en un informe con varios cuadros de texto tipo label y una tabla y una lista enlazadas a datasets (uno un dataset de tablas y otro MySettings) no se relentiza.  Si en la región de la lista, o en el cuerpo del informe o en la cabecera o el pie de página coloco otro cuadro de texto con cualquier expresión (desde 1+1, un enlace a un parametro o un enlace a un parametro global como el número de página) entonces se relentiza.  Vamos, básicamente en cuanto utilizo una expresión. Incluso si por ejemplo en una tabla hago referencia a otra celda (ReportItem!loquesea...) también se produce.

    No se si a alguien mas le pasa esto pero estaría interesado en que alguien tratara de reproducirlo para saber si es algo inherente a los informes con ReportViewer o soy el único pringui al que le pasa. Es posible que se haya pasado, ya que si la aplicación en sí no abre formularios que tarden (con muchos enlaces o gráficos) la diferencia puede no ser significativa, pero cuando los siguientes formularios del proyecto "pesan" se nota bastante. No obstante si uno se fija (y a mi ya me duelen los ojos de fijarme) en mi caso en cuanto colocas una expresión hay una pequeña diferencia en como se abre un informe: sin la expresión se abre automáticamente y con la expresión tarda unas décimas de segundo.

    Por favor si alguien lo prueba que me diga algo.

    Saludos.

    Eduardo


    miércoles, 30 de septiembre de 2009 12:17
  • Hola,

    ¿De cuantos datos estamos hablando que manejan tus reports?

    Un Saludo


    Fran Díaz | {geeks.ms/blogs/fdiaz/} | {onobanet.com} | {secondnug.com}
    viernes, 09 de octubre de 2009 6:52
    Moderador
  • Hola:

    En mi caso no es cuestión de informes con muchos datos, puesto que el proyecto está en fase de desarrollo: puede ser un informe de tres lineas con datos que se obtienen directamente de la tabla.  Por ahora no he encontrado solución. ¿A tí también te pasa?.

    Eduardo 
    viernes, 09 de octubre de 2009 11:34
  • Hola, estimados, me pueden decir si resolvieron el problema, me esta pasando lo mismo en mi aplicacion donde utilizo el reportviewer, de echo necesito encontrar una forma de resolverlo, ya que el equipo se bloquea y se alenta, despues de una semana de operación, ya que al día realiza 700 veces el reporte...
    miércoles, 11 de octubre de 2017 15:00