第一步,初始化ReportDesignHandle和ElementFactory的对象,前者代表生成的report design;后者用来创建所用到的报表元素。
IDesignEngine designEngine = new DesignEngine( new DesignConfig( ) );
ReportDesignHandle reportDesignHandle = designEngine.newSessionHandle(
ULocale.ENGLISH ).createDesign( );
ElementFactory elementFactory = new ElementFactory( reportDesignHandle
.getModule( ) );
第二步,创建Parameter。
ScalarParameterHandle scalarParameterHandle = elementFactory
.newScalarParameter( "param" );
scalarParameterHandle.setIsRequired( false );
scalarParameterHandle.setDefaultValue( " Australia " );
reportDesignHandle.getParameters( ).add( scalarParameterHandle );
第三步,创建Data Source。
OdaDataSourceHandle dataSourceHandle = elementFactory.newOdaDataSource(
"data source",
"org.eclipse.birt.report.data.oda.jdbc" );
dataSourceHandle.setProperty(
"odaDriverClass",
"org.eclipse.birt.report.data.oda.sampledb.Driver" );
dataSourceHandle.setProperty( "odaURL", "jdbc:classicmodels:sampledb" );
dataSourceHandle.setProperty( "odaUser", "ClassicModels" );
// dataSourceHandle.setProperty( "odaPassword", "ClassicModels" );
reportDesignHandle.getDataSources( ).add( dataSourceHandle );
第四步,创建Data Set。
OdaDataSetHandle dataSetHandle = elementFactory.newOdaDataSet(
"data set",
"org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" );
dataSetHandle.setDataSource( dataSourceHandle.getName( ) );
dataSetHandle.setQueryText( "select * from CLASSICMODELS.CUSTOMERS" );
FilterCondition filterCondition = StructureFactory.createFilterCond( );
filterCondition.setOperator( DesignChoiceConstants.FILTER_OPERATOR_EQ );
filterCondition.setExpr( "row[/"COUNTRY/"]" );
filterCondition.setValue1( "params[/""
+ scalarParameterHandle.getName( ) + "/"].value" );
dataSetHandle.addFilter( filterCondition );
reportDesignHandle.getDataSets( ).add( dataSetHandle );