Bonjour,
J'ai cré un simple rapport dans Birt et je veux l'intégrer dans ma classe java.
Voilà mon code:
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
package Package1;
 
import java.util.ArrayList;
import java.util.logging.Level;
 
import org.eclipse.birt.core.framework.Platform;
import org.eclipse.birt.data.engine.core.DataException;
import org.eclipse.birt.report.engine.api.EngineConfig;
import org.eclipse.birt.report.engine.api.EngineException;
import org.eclipse.birt.report.engine.api.IDataExtractionTask;
import org.eclipse.birt.report.engine.api.IDataIterator;
import org.eclipse.birt.report.engine.api.IExtractionResults;
import org.eclipse.birt.report.engine.api.IReportDocument;
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.IResultMetaData;
import org.eclipse.birt.report.engine.api.IResultSetItem;
import org.eclipse.birt.report.engine.api.IRunTask;
 
 
public class Edition {
 
static void executeReport() throws EngineException
{
 IReportEngine engine=null;
 EngineConfig config = null;
 try{
  config = new EngineConfig( );
  config.setEngineHome( "E:\\eclipse\\features\\org.eclipse.birt.report.runtime_2.2.2.r22x_v20071015-7U7U7RBs-_N6u3VW7eooU" );
  config.setLogConfig(null, Level.FINE);
 
  Platform.startup( config );
  IReportEngineFactory factory = (IReportEngineFactory) Platform
  .createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
  engine = factory.createReportEngine( config );
  engine.changeLogLevel( Level.WARNING );
 
 }catch( Exception ex){
  ex.printStackTrace();
 }
 
 IReportRunnable design = null;
 
 design = engine.openReportDesign("C:\\Documents and Settings\\Administrateur\\Travail\\MonPremier\\src\\Package1\\ListePro.rptdesign"); 
 
 IRunTask task = engine.createRunTask(design); 
 
 task.run("C:\\acceptandorder.rptdocument");
 
 
 IReportDocument rptdoc = engine.openReportDocument("C:\\acceptandorder.rptdocument"); 
 
 IDataExtractionTask iDataExtract = engine.createDataExtractionTask(rptdoc);
 
 
 ArrayList resultSetList = (ArrayList)iDataExtract.getResultSetList( );
 
 
 IResultSetItem resultItem = (IResultSetItem)resultSetList.get( 0 );
 
 String dispName = resultItem.getResultSetName( );
 iDataExtract.selectResultSet( dispName );
 
 IExtractionResults iExtractResults = iDataExtract.extract();
 IDataIterator iData = null;
 
 try{
  if ( iExtractResults != null ) {
    iData = iExtractResults.nextResultIterator( );
    if ( iData != null  ){
 
      IResultMetaData irmd = iData.getResultMetaData();
      int colCount = irmd.getColumnCount();
      System.out.println("Column Count =" + colCount );
      for( int j=0; j< colCount; j++){
        System.out.println("Column Name =" + irmd.getColumnName(j) );
        System.out.println("Column Type =" + irmd.getColumnTypeName(j) );
      }
 
      while ( iData.next( ) ) { 
 
        Object objColumn1;
        Object objColumn2;
        try{
          objColumn1 = iData.getValue(0);
        } catch(DataException e) {
          objColumn1 = new String("");
        }
 
        try{
          objColumn2 = iData.getValue(1);
        } catch(DataException e){
          objColumn2 = new String("");
        } 
 
        System.out.println( objColumn1 + " , " + objColumn2 );
      }
      iData.close();
    }
  }
 }catch( Exception e){
  e.printStackTrace();
 }
Engine  
 iDataExtract.close();
 engine.destroy();
 Platform.shutdown();
 System.out.println("Finished");
}
 
 
public static void main(String[] args) {
 try
 {
  executeReport( );
 }
 catch ( Exception e )
 {
  e.printStackTrace();
 }
}
 
}





Mais après l'exécusion j'obtient cet erreur.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
org.eclipse.birt.core.exception.BirtException: Can't startup the OSGI framework
	at org.eclipse.birt.core.framework.Platform.startup(Platform.java:90)
	at Package1.Edition.executeReport(Edition.java:33)
	at Package1.Edition.main(Edition.java:129)
Caused by: org.eclipse.birt.core.exception.BirtException: Could not find the Framework - {0}
	at org.eclipse.birt.core.framework.osgi.OSGILauncher.startup(OSGILauncher.java:95)
	at org.eclipse.birt.core.framework.Platform.startup(Platform.java:78)
	... 2 more
java.lang.NullPointerException
	at Package1.Edition.executeReport(Edition.java:46)
	at Package1.Edition.main(Edition.java:129)