BIRT 如何处理横向分栏

 

关键词导读:横向分栏 BIRT从左到右显示

比如要处理这么个场景:将数据记录横向排布为三列显示。效果图如下:

BIRT可以对数据纵向分栏,很难实现记录横向摆放并分栏的布局,有网友提出:把数据集绑定到List元素上,在网格中排列一个或多个数据字段,采用嵌入子网格等手段来实现,但都属于理论性阶段,并没有给出完整的示例,可想而知,即便能实现,也是需要写复杂的脚本和杂乱的网格拼接。工作量巨大。源数据格式如下:

一些特殊的布局版面,很难通过报表工具本身提供的功能直接实现,但如果准备出合适的数据源,就能大大降低报表设计的难度,集算器SPL就可以辅助BIRT准备好已分栏的数据,BIRT只管接收处理后的数据并展现即可。代码如下:

 

A

B

C

1

=myDB.query("select EId,Name,Dept from emp where EId>=? and EId<=? order by EId ",begin,end)

 

2

=A1.step(3,1)

=A1.step(3,2)|[null]

=A1.step(3,3)|[null]

3

=A2.derive(B2(#).EID:EID2,B2(#).NAME:NAME2,B2(#).DEPT:DEPT2,C2(#).EID:EID3,C2(#).NAME:NAME3,C2(#).DEPT:DEPT3)

4

return A3

 

 

其实还有很多类似的格式布局问题在BIRT中处理不太方便,但有集算器SPL的辅助却很简单,感兴趣可以参考:解决BIRT报表特殊布局的若干示例

集算器提供了JDBC驱动,可以很方便的与BIRT等报表工具集成,BIRT调用SPL脚本有使用和获得它的方法。

关于集算器安装使用、获得免费授权和相关技术资料,可以参见如何使用集算器

 

来源:https://stackoverflow.com/questions/28672042/how-to-display-dataset-result-as-left-to-right