昨天按照以下网址的实例成功配置了Struts2+Spring2+Jpa+Hibernate3的框架
http://blog.csdn.net/tgh_china/archive/2007/08/22/1754429.aspx
并且根据Birt官方网站的实例将
Birt通过URL集成的方式配置到了程序里面
接下来的工作将是研究Birt Runtime
通过Report Disnger API开发一个可以在Web自定义生成报表的报表管理系统
就是ReportDisngerAPI的例子不多得自己去看JavaDoc这个比较辛苦
下面是官方的一个通过API设计并保存报表的例子,翻译了一下
DesignConfig config
=
new
DesignConfig( );
// 设置报表引擎的目录 在下载的Runtime压缩包中
config.setProperty( " BIRT_HOME " , " E:/OpenSource/birt-runtime-2_1_3/ReportEngine " );
IDesignEngine engine = null ;
try ... {
Platform.startup( config );
IDesignEngineFactory factory = (IDesignEngineFactory) Platform
.createFactoryObject( IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY );
engine = factory.createDesignEngine( config );
} catch ( Exception ex) ... {
ex.printStackTrace();
}
SessionHandle session = engine.newSessionHandle( ULocale.ENGLISH ) ;
// 创建一个新的报表设计
ReportDesignHandle design = session.createDesign( );
// 获得元素工厂,通过工厂获得各种各样的元素
ElementFactory factory = design.getElementFactory( );
// 创建一个简单的MasterPage来描述报表如何呈现
//
// Note: 如果不创建MasterPage报表会读取出错
DesignElementHandle element = factory.newSimpleMasterPage( " Page Master " ); // $NON-NLS-1$
design.getMasterPages( ).add( element );
// 从元素工厂获得一个表格
GridHandle grid = factory.newGridItem( null , 2 /**/ /* 列 */ , 1 /**/ /* 行 */ );
design.getBody( ).add( grid );
// Note: 设置表格的宽度
grid.setWidth( " 100% " ); // $NON-NLS-1$
// 获得表格的第一行
RowHandle row = (RowHandle) grid.getRows( ).get( 0 );
// 创建一个图片元素加入到第一行的第一格
ImageHandle image = factory.newImage( null );
CellHandle cell = (CellHandle) row.getCells( ).get( 0 );
cell.getContent( ).add( image );
image.setURL( " "http://www.eclipse.org/birt/phoenix/tutorial/basic/multichip-4.jpg" " );
// 创建一个标签元素加入到表格的第一行第二格
LabelHandle label = factory.newLabel( null );
cell = (CellHandle) row.getCells( ).get( 1 );
cell.getContent( ).add( label );
label.setText( " Hello, world! " ); // $NON-NLS-1$
// 保存报表,注意这里要用文件系统的地址
design.saveAs( " c:/sample.rptdesign " ); // $NON-NLS-1$
design.close( );
System.out.println( " Finished " );
// 设置报表引擎的目录 在下载的Runtime压缩包中
config.setProperty( " BIRT_HOME " , " E:/OpenSource/birt-runtime-2_1_3/ReportEngine " );
IDesignEngine engine = null ;
try ... {
Platform.startup( config );
IDesignEngineFactory factory = (IDesignEngineFactory) Platform
.createFactoryObject( IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY );
engine = factory.createDesignEngine( config );
} catch ( Exception ex) ... {
ex.printStackTrace();
}
SessionHandle session = engine.newSessionHandle( ULocale.ENGLISH ) ;
// 创建一个新的报表设计
ReportDesignHandle design = session.createDesign( );
// 获得元素工厂,通过工厂获得各种各样的元素
ElementFactory factory = design.getElementFactory( );
// 创建一个简单的MasterPage来描述报表如何呈现
//
// Note: 如果不创建MasterPage报表会读取出错
DesignElementHandle element = factory.newSimpleMasterPage( " Page Master " ); // $NON-NLS-1$
design.getMasterPages( ).add( element );
// 从元素工厂获得一个表格
GridHandle grid = factory.newGridItem( null , 2 /**/ /* 列 */ , 1 /**/ /* 行 */ );
design.getBody( ).add( grid );
// Note: 设置表格的宽度
grid.setWidth( " 100% " ); // $NON-NLS-1$
// 获得表格的第一行
RowHandle row = (RowHandle) grid.getRows( ).get( 0 );
// 创建一个图片元素加入到第一行的第一格
ImageHandle image = factory.newImage( null );
CellHandle cell = (CellHandle) row.getCells( ).get( 0 );
cell.getContent( ).add( image );
image.setURL( " "http://www.eclipse.org/birt/phoenix/tutorial/basic/multichip-4.jpg" " );
// 创建一个标签元素加入到表格的第一行第二格
LabelHandle label = factory.newLabel( null );
cell = (CellHandle) row.getCells( ).get( 1 );
cell.getContent( ).add( label );
label.setText( " Hello, world! " ); // $NON-NLS-1$
// 保存报表,注意这里要用文件系统的地址
design.saveAs( " c:/sample.rptdesign " ); // $NON-NLS-1$
design.close( );
System.out.println( " Finished " );