Bonjour ,
Je souhaite generer un rapport BIRT en utilisant le code java, pour ce j'ai cherché dans le net afin de trouver des tutos pertinents
Un des sujets publiés dans ce forum répondait bien à ma question
cependant,le code proposé genere une errer au niveau de task.run() et task.close()
voici le code
et voici l'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
71
72
73
74
75
76
77
78 import java.util.logging.Level; import org.eclipse.birt.core.framework.Platform; import org.eclipse.birt.report.engine.api.EngineConfig; import org.eclipse.birt.report.engine.api.EngineConstants; import org.eclipse.birt.report.engine.api.EngineException; import org.eclipse.birt.report.engine.api.IRenderOption; import org.eclipse.birt.report.engine.api.IReportEngine; import org.eclipse.birt.report.engine.api.IReportEngineFactory; import org.eclipse.birt.report.engine.api.IReportRunnable; import org.eclipse.birt.report.engine.api.IRunAndRenderTask; import org.eclipse.birt.report.engine.api.RenderOption; import org.eclipse.birt.report.engine.api.impl.RunAndRenderTask; /** * Simple BIRT Design Engine API (DEAPI) demo. */ public class Report { public static void main( String[] args ) throws EngineException { EngineConfig config = new EngineConfig(); IReportEngine engine = null ; try{ config.setEngineHome( "C:\\Users\\DL\\Desktop\\eclipse Birt\\birt-runtime-4_3_2\\ReportEngine" ); config.setLogConfig("c:/birt", Level.FINE); System.out.println("1"); Platform.startup( config ); IReportEngineFactory factory = (IReportEngineFactory) Platform .createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY ); System.out.println("2"); engine = factory.createReportEngine( config ); System.out.println("3"); engine.changeLogLevel( Level.WARNING ); System.out.println("4"); } catch( Exception ex) { System.out.println("catch"); } System.out.println("5"); //Open the report design IReportRunnable design = engine.openReportDesign("C:\\Users\\DL\\workspace-birt\\Tested\\Reporttest.rptdesign"); System.out.println("6"); //Create task to run and render the report, IRunAndRenderTask task = engine.createRunAndRenderTask(design); //Set parent classloader for engine task.getAppContext().put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY, RunAndRenderTask.class.getClassLoader()); System.out.println("7"); //Set parameter values and validate //task.setParameterValue("Top Percentage", (new Integer(3)));; //task.setParameterValue("Top Count", (new Integer(5))); //task.validateParameters(); //Save as PDF File IRenderOption options = new RenderOption(); options.setOutputFormat("pdf"); options.setOutputFileName("c:/birt/resultat.pdf"); System.out.println("8"); task.setRenderOption(options); System.out.println("9"); //run and render report task.run(); System.out.println("10"); task.close(); System.out.println("11");
comme vous remarquez l'execution s'arrete au niveau de task.run()
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 1 2 3 4 5 6 7 8 9 Exception in thread "main" org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report. at org.eclipse.birt.report.engine.api.impl.EngineTask.handleFatalExceptions(EngineTask.java:2363) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:191) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77) at Report.main(Report.java:75) Caused by: java.lang.IllegalArgumentException: URI is not absolute at java.net.URI.toURL(Unknown Source) at org.eclipse.datatools.enablement.oda.xml.util.ResourceLocatorUtil.getInputStream(ResourceLocatorUtil.java:49) at org.eclipse.datatools.enablement.oda.xml.util.XMLSourceFromPath.openInputStream(XMLSourceFromPath.java:43) at org.eclipse.datatools.enablement.oda.xml.util.SaxParser.<init>(SaxParser.java:81) at org.eclipse.datatools.enablement.oda.xml.util.SaxParserNestedQueryHelper.<init>(SaxParserNestedQueryHelper.java:65) at org.eclipse.datatools.enablement.oda.xml.util.SaxParserConsumer.<init>(SaxParserConsumer.java:105) at org.eclipse.datatools.enablement.oda.xml.impl.ResultSet.next(ResultSet.java:142) at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaResultSet.next(OdaResultSet.java:180) at org.eclipse.birt.data.engine.odaconsumer.ResultSet.fetch(ResultSet.java:138) at org.eclipse.birt.data.engine.executor.cache.OdiAdapter.fetch(OdiAdapter.java:214) at org.eclipse.birt.data.engine.executor.cache.RowResultSet.fetch(RowResultSet.java:145) at org.eclipse.birt.data.engine.executor.cache.RowResultSet.doNext(RowResultSet.java:118) at org.eclipse.birt.data.engine.executor.cache.RowResultSet.next(RowResultSet.java:96) at org.eclipse.birt.data.engine.executor.transform.SimpleResultSet$RowResultSetWithResultSetScope.fetch(SimpleResultSet.java:1013) at org.eclipse.birt.data.engine.executor.cache.RowResultSet.doNext(RowResultSet.java:118) at org.eclipse.birt.data.engine.executor.cache.RowResultSet.next(RowResultSet.java:96) at org.eclipse.birt.data.engine.executor.transform.SimpleResultSet.prepareFirstRow(SimpleResultSet.java:319) at org.eclipse.birt.data.engine.executor.transform.SimpleResultSet.getResultSetIterator(SimpleResultSet.java:338) at org.eclipse.birt.data.engine.executor.DataSourceQuery.execute(DataSourceQuery.java:1057) at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.executeOdiQuery(PreparedOdaDSQuery.java:503) at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1208) at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:233) at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:178) at org.eclipse.birt.report.engine.data.dte.QueryResultSet.<init>(QueryResultSet.java:98) at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:168) at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:275) at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1947) at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80) at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62) at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46) at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34) at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65) at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92) at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:181) ... 2 more
J'ai importé les jars de Report engine du fichier runtime_xxx
S'il y a des eventuelles erreurs dans le code priere de me les corriger
Merci d'avance
Partager