Bonjour, j'aimerais génerer une rapport page par page. je genere au préalable le rptdocument bien sûr, mais ce que j'aimerais savoir, c'est si pour le rendu, je peux utiliser un RenderTask créer une fois, ou pour chaque page, je dois créer un RenderTask à partir du ReportEngine et le fermer à la fin et puis recommencer.
Si je pose la question, c'est parceque, j'ai dans mon code utilisé un seul RenderTask, de la manière suivante :
mais parfois dans mes logs, j'obtiens de message d'erreur inattendus lors de l'exécution de l'instruction IRenderTask.render(). J'aimerais savoir cela peut être dû à l'utilisation d'un seul IRenderTask.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 reportDocument = reportEngine.openReportDocument(documentPath); HTMLRenderOption htmlOption = new HTMLRenderOption(); htmlOption.setOutputFormat(IRenderOption.OUTPUT_FORMAT_HTML); htmlOption.setEmbeddable(false); htmlOption.setImageDirectory(session.getImageFolder()); htmlOption.setSupportedImageFormats("PNG;GIF;JPG;BMP"); htmlOption.setHtmlPagination(true); htmlOption.setMasterPageContent(true); htmlOption.setImageHandler(new HTMLServerImageHandler()); htmlOption.setBaseImageURL(imageUrl); renderTask = reportEngine.createRenderTask(reportDocument); for (int j = 1; j <= pageCount; j++) { htmlOption.setOutputFileName(session.getReportPath(j)); renderTask.setPageNumber(j); renderTask.setRenderOption(htmlOption); renderTask.render(); } reportDocument.close(); renderTask.close();
J'ai modifié mon code de la manière suivante, mais je suis entrain de le tester.
J'aimerais avoir des observations sur ces deux méthodes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 HTMLRenderOption htmlOption = new HTMLRenderOption(); htmlOption.setOutputFormat(IRenderOption.OUTPUT_FORMAT_HTML); htmlOption.setEmbeddable(false); htmlOption.setImageDirectory(session.getImageFolder()); htmlOption.setSupportedImageFormats("PNG;GIF;JPG;BMP"); htmlOption.setHtmlPagination(true); htmlOption.setMasterPageContent(true); htmlOption.setImageHandler(new HTMLServerImageHandler()); htmlOption.setBaseImageURL(imageUrl); // renderTask.setLocale(ServerTools.getLocale(locale)); for (int j = 1; j <= pageCount; j++) { reportDocument = reportEngine.openReportDocument(documentPath); renderTask = reportEngine.createRenderTask(reportDocument); htmlOption.setOutputFileName(session.getReportPath(j)); renderTask.setPageNumber(j); renderTask.setRenderOption(htmlOption); renderTask.render(); reportDocument.close(); renderTask.close(); }
Merçi.
Partager