主要思想就是在表头加超链接,链接到自己,给自己带一个order by参数。
看一下sql:(在数据集的script beforeopen里)
sql =" select OFFICECODE, CITY, PHONE from CLASSICMODELS.OFFICES order by "+ params["order"] ;
this.queryText=sql;
为什么要在这里写,我之前发了个帖子,说明可能是birt的bug,不能在设计器里写sql order by ?,所以就干脆使用脚本了。
接下来设计一个表格,这没什么说的。
选择列标题,属性,超链接,选择追朔,然后选择到自己的报表,填写参数,关于超链接的使用,请参考我的另一个教程:
http://www.birthome.cn/read.php?tid-20-keyword-%B3%AC%C1%B4%BD%D3.html
注意,这里我们的参数选择ordr by ,值写上要根据哪个字段排序的,比如当前选择officecode列,那就是根据officecode排序,这里的值就要写上:"officecode",注意,这个引号一定要写上,否则会报错。
还有就是选择超链接打开位置,选择相同框架。
这样就ok了,预览一下,运行效果:
点击city,刚根据city排序,点击phone将根据phone排序。
说明:因为这里重新进行了查询,所以数据量大的话会造成一些资源浪费的。关于如何使用birt 缓存数据,而不需要重新查询,这个不太清楚,有清楚的请指教。
最后发一下我的设计文件,方便大家查看: