Bonjour à tous,
Je cherche à générer un même rapport dans différents formats : html, pdf, excel et word à partir d'une servlet. J'ai me suis donc aidé des posts http://www.developpez.net/forums/sho...&highlight=jsp et http://www.developpez.net/forums/sho...ighlight=excel pour réaliser la classe ci dessous. Cette classe permet en fonction d'un paramètre (genMode à DEP ou AFF) soit d'afficher le rapport à l'aide du client associé (acrobat reader pour pdf par exemple) soit de créer et déposer le fichier à un endroit donné en paramètre.
Bref, tout cela fonctionne très bien sauf pour le fichier Excel dans lequel il n'affiche pas un graphique pour le mode création et dépot de fichier et pour ce qui est du mode d'affichage direct il m'indique qu'il ne connait pas le type de fichier.
Avez-vous une idée d'où peut provenir mon erreur ?
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 import java.util.HashMap; import ...; public class Edition { public RenderOptionBase options; public void generateReport(String engineHome, String rptdesignFile, HashMap parametersList, String outputFormat, String outputFile, String genMode) { EngineConfig config = new EngineConfig( ); config.setEngineHome( engineHome ); options = new RenderOptionBase(); ByteArrayOutputStream flux = new ByteArrayOutputStream (); options.setOutputFormat(outputFormat); // Create the engine. ReportEngine engine = new ReportEngine( config ); String designName = rptdesignFile; IReportRunnable runnable = null; try { runnable = engine.openReportDesign( designName ); } catch ( EngineException e ) { System.err.println ( "Design " + designName + " not found!" ); engine.shutdown( ); System.exit( -1 ); } // Create a parameter definition task. IGetParameterDefinitionTask taskp = engine.createGetParameterDefinitionTask(runnable); // Create a run and render task object. IRunAndRenderTask task = engine.createRunAndRenderTask( runnable ); // Set values for all parameters in a HashMap, parameterValues task.setParameterValues( parametersList ); // Validate parameter values. boolean parametersAreGood = task.validateParameters( ); if (parametersAreGood){ System.out.println( "Les paramètres sont OK..." ); } else { System.out.println( "Les paramètres sont KO!!!" ); } if (genMode.equals("DEP")) { // Create a file options.setOutputFileName( outputFile ); } else if (genMode.equals("AFF")) { // Create a stream options.setOutputStream(flux); } else { System.err.println("Mode de génération inconnu"); } // Apply the rendering options to the task. task.setRenderOption( options ); try { task.run( ); System.out.println( "Created Report " + outputFile + "." ); } catch ( EngineException e ) { System.err.println( "Report " + designName + " run failed." ); System.err.println( e.getMessage() ); } engine.destroy(); } }
Merci d'avance pour votre aide,
A plus tard
Sly
Partager