Ezequiel, parte de este equipo, nos hizo el favor de escribir esta sección porque controla a la perfección este tema.
Solución:
Después de todo, debe desechar su instancia de informe. Si desecha el informe después de mostrarlo, nunca volverá a ver el error “Se ha alcanzado el límite máximo de trabajos de procesamiento de informes configurado por el administrador del sistema”.
Dim report1 As rptBill = clsBill.GetReport(billNumber)
rpt.Print()
'Cleanup the report after that!
rpt.Close()
rpt.Dispose()
Recomendaría mover su código close/dispose/gc.collect fuera de ese proceso de descarga. En otras palabras:
- Cargar informe
- Asignar a control de visor
- Mostrar informe en Viewer Control
- Cerrar Viewer Control y Descargar (completamente)
- Luego cierre/dispose/gc.collect fuera de cualquier código de control del visor
Supongo que el control del visor no está completamente cerrado cuando se limpia el informe.
Crystal es un proceso que requiere mucha memoria y es muy quisquilloso.
Implementaciones de documentos de Crystal Report IDisposable
interfaz. Así que todo lo que tiene que hacer es encerrar la instancia del informe con using
declaración. Se cerrará automáticamente y se desechará una vez que el using
se completa la declaración. Puedes escribir algo así:
using(var report = GetInvoiceReport())
// your logic here
o (depende de su contexto):
using(var report = new ReportDocument())
// your logic here
Comentarios y puntuaciones
Finalizando este artículo puedes encontrar las notas de otros creadores, tú aún tienes la habilidad dejar el tuyo si te gusta.