none
Report que me "paraliza" la aplicacion RRS feed

  • Pregunta

  • Hola chicos, queria comentaros una cosilla que me pasa a ver si alguien tiene
    idea.

    Utilizo para los informes el REPORT MANAGER ( OPENSOURCE ) y para ello uso
    un activex que incluye. El caso es que cuando se abre el informe, no me deja
    seguir con la aplicacion hasta que cierro el INFORME. He intentado hacer
    multihilo pero nada, alomejor no lo hago bien.

    Podeis darme una mano? Es porque es un activex y hasta que no se cierra no
    puede seguir? porque es?


    Reportman.ReportManX rp = new ReportManX();
    rp.Title = "Informes";
    rp.Language = 1;
    rp.ShowProgress = true;
    rp.filename = inicio_sistema.ruta_informes + informe;

    Environment.CurrentDirectory = inicio_sistema.ruta_aplicacion;
    rp.Preview = Previsualitzar;
    rp.ShowProgress = true;
    rp.ShowPrintDialog = false;
    rp.AsyncExecution = true;

    rp.Execute();


    MessageBox.Show("ESTO NO SE IMPRIME HASTA QUE CIERRO EL INFORME.");



    el tema es que quiero poder abrir mas de un informe y claro, si me deja la
    aplicacion desactivada, no puedo seguir hasta que lo cierro.

    Muchisimas gracias por la atencion

    Xuri
    • Editado ckumark viernes, 26 de junio de 2009 19:09 Fixing thread title bug
    • Cambiado Fran DiazModerator lunes, 6 de julio de 2009 12:41 - (De:Lenguaje C#)
    martes, 23 de junio de 2009 7:39

Respuestas

  • Hola, lo que sucede es que estas ejecutando ese código sobre el MainThread, por lo tanto dejas tu aplicación irresponsiva puesto que ese hilo al ejecutar el método donde generas el reporte no libera los recursos hasta que termine de hacer todo eso, por lo tanto la forma de solucionar eso es generando otro hilo para que se consuman otros recursos.

    Intenta con el BackgroundWorker Class y su Método DoWork() para que dentro de éste se haga el reporte.

    Saludos,
    Microsoft Certified Professional
    Profesionista Microsoft VIP México
    Blog Técnico
    World Wide Finalist Imagine Cup 2007
    Microsoft Student Partner
    C#, WPF, WCF
    LinkedIn
    jueves, 25 de junio de 2009 3:45

Todas las respuestas

  • hola,

    el control activex donde se esta mostrando?, digo si es que se muestra en pantalla

    o sea es un activex, que me imagino lo utilizas por medio de un interop en .net ?
    si es asi visualmente no lo estas viendo o si ? te deja el reporte generado en algun archiovo ?


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 23 de junio de 2009 13:53
  • efectivamente es un interop. Se muestra el reporte, pero el problema es que no me deja abrir varios, es como si la ventana del reporte estuviera en modal. No se si me explico.. necesito que este de parte. Gracias.
    Xuri
    martes, 23 de junio de 2009 18:26
  • hola,

    estuve viendo un poco mas el tema pero no pued encontrar propiedad u opcion que permita cambiar las opcioens de visualziacion delc uadro, o sea que justamente evite el modal.

    por ahi es asi como trabaja el control, y no tiene esta opcion.

    o por ahi lo que podrias hacer es ver de lanzar los reprotes sin visualizacion, exportandolos a algun formato x, llamese pdf, doc, etc.
    Y luego realziando la apertura del documento.
    No se si esta alternativa te es valida.

    no has pensado cambiar a otro tipo de reporteador, digo crystal, o reporting service ?


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 24 de junio de 2009 17:20
  • Hola, lo que sucede es que estas ejecutando ese código sobre el MainThread, por lo tanto dejas tu aplicación irresponsiva puesto que ese hilo al ejecutar el método donde generas el reporte no libera los recursos hasta que termine de hacer todo eso, por lo tanto la forma de solucionar eso es generando otro hilo para que se consuman otros recursos.

    Intenta con el BackgroundWorker Class y su Método DoWork() para que dentro de éste se haga el reporte.

    Saludos,
    Microsoft Certified Professional
    Profesionista Microsoft VIP México
    Blog Técnico
    World Wide Finalist Imagine Cup 2007
    Microsoft Student Partner
    C#, WPF, WCF
    LinkedIn
    jueves, 25 de junio de 2009 3:45
  • hola iRodfraga,

    Ten en cuenta que es un reporte con previsualizacion del mismo, yo habia pensado sugerir usar hilos para ejecutar los reportes, pero cuando vi que tienen previsualizacion no lo hice.

    Es por eso que pregunte si se podria exportar a algun otro formato, ya sea pdf, word, etc, ahi s se podria ver la forma de ejecutar en hilos total el resultado final no se interfieren entre si, cada hilo dejara comor esultado un archivo que luego podria ser visualziado.

    Esto no lo verifique pero el control que se utiliza para los reportes creo ademas que no es completamente manejado, es un ActiveX que seguro trabaja en .net por medio de un Interop, eso no se si podra causar problemas tambien.


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 25 de junio de 2009 14:55
  • tiene que ser mostrado por la misma aplicacion del report.. usar las dll de .net va medio bien, pero mejor si se usaba el activex por comodidad, porque sino tengo que cambiar todos los reports y demas..

    alguna otra solucion como crear hilos pero que vaya? porque he probado a crear hilos y nada, sigue parandose.
    Xuri
    lunes, 6 de julio de 2009 11:44