您的位置:首页 > 移动开发 > Objective-C

百灵报表(BIRT)接口学习:使用Data Extraction Task导出数据

2008-06-10 16:54 609 查看
创建一个Report
 

创建一个Data Source
Classic Models Inc. SampleDB Driver

 

创建一个Data Set
select CLASSICMODELS.CUSTOMERS.CUSTOMERNUMBER,

CLASSICMODELS.CUSTOMERS.CUSTOMERNAME,

CLASSICMODELS.CUSTOMERS.COUNTRY

from CLASSICMODELS.CUSTOMERS

 

创建一个Table
 

生成 document
 

……

IReportDocument reportDocument = engine.openReportDocument( “d:/sample.rptdocument” );

 

IDataExtractionTask dataExtractionTask = engine.createDataExtractionTask( reportDocument );

 

List list = dataExtractionTask.getResultSetList( );

 

// choose the 1st result set as an example

IResultSetItem resultSetItem = (IResultSetItem) list.get( 0 );

 

String resultSetName = resultSetItem.getResultSetName( );

dataExtractionTask.selectResultSet( resultSetName );

 

IResultMetaData resultMetaData = resultSetItem.getResultMetaData( );

String[] columnNames = new String[resultMetaData.getColumnCount( )];

for ( int j = 0; j < resultMetaData.getColumnCount( ); j++ )

            columnNames[j] = resultMetaData.getColumnName( j );

dataExtractionTask.selectColumns( columnNames );

 

Locale locale = new Locale( "en_us" );

dataExtractionTask.setLocale( locale );

 

// apply a simple filter

ConditionalExpression expression = new ConditionalExpression(

                        "row[/"COUNTRY/"]",

                        IConditionalExpression.OP_EQ,

                        "/"Australia/"" );

IFilterDefinition filterDefinition = new FilterDefinition( expression );

dataExtractionTask.setFilters( new IFilterDefinition[]{filterDefinition} );

 

// apply a simple sort

SortDefinition sortDefinition = new SortDefinition( );

sortDefinition.setExpression( "row[/"CUSTOMERNUMBER/"]" );

sortDefinition.setSortDirection( ISortDefinition.SORT_DESC );

dataExtractionTask.setSorts( new ISortDefinition[]{sortDefinition} );

 

IExtractionResults extractionResults = dataExtractionTask.extract( );

 

IDataIterator dataIterator = extractionResults.nextResultIterator( );

 

StringBuffer stringBuffer = new StringBuffer( );

 

for ( int j = 0; j < columnNames.length; j++ )

{

            stringBuffer.append( columnNames[j] );

            if ( j < columnNames.length - 1 )

                        stringBuffer.append( "|" );

}

 

stringBuffer.append( "/n" );

 

while ( dataIterator.next( ) )

{

            for ( int j = 0; j < columnNames.length; j++ )

            {

                        Object object = dataIterator.getValue( j );

                        if ( object != null )

                        {

                                    stringBuffer.append( object.toString( ) );

                                    if ( j < columnNames.length - 1 )

                                                stringBuffer.append( "|" );

                        }

            }

 

            stringBuffer.append( "/n" );

}

 

System.out.println( stringBuffer );

……

 

应该可以得到这样的输出:
 

CUSTOMERNUMBER|CUSTOMERNAME|COUNTRY

471|Australian Collectables, Ltd|Australia

333|Australian Gift Network, Co|Australia

282|Souveniers And Things Co.|Australia

276|Anna's Decorations, Ltd|Australia

114|Australian Collectors, Co.|Australia
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐