birt报表中的数据都是来自于你所配的数据源。
然后具体可以在数据集中写具体的sql语句比如:select user_name(注:名称),week(周时段),.......(其他字段) from table order by week_no(周序号);就是把每人每周的相关业务数据给展示出来。
但是,order by 在sql中写不起作用(原因不明,但就是不起作用)。
结果所查出来的列字段就很乱。第1周,第三周,第9周,第2周。。。。
下面给出我采用的排序方法:
修改sql语句,将要排序所依据的那个字段也查出来:select user_name,week,week_no,......from table
如此在数据资源管理器视图中就可以看到:
在建好的交叉报表模板上,将user_name 拉到行表头上,把week周 拉到列表头上,另外将排序字段week_no拉到week字段的上(前)面(如果拉到week的下\后面依然无效),结果如下图:
点中"[week_no]"的单元格,在其属性的高级设置中配置将Hight设为0(有强迫症的同学也可再将可视性设为隐藏),这样就可以了。预览的结果就是按week_no升序排列。
此外,如果你想按自己的方式降序或别的顺序来排列的话那就在sql中如此写:
select aa, ..., (case when aa '低级' then 1 when '中级' then 2 when '高级' then 3 else 5 end )as aa_sort
aa_sort将相当于之前的week_no,直接拖到列表头的上面就行了。
转自:http://blog.csdn.net/anno_domini/article/details/20053487
操作的时候设置高度为0的排序行还是会显示回来,设置该行为隐藏的也可以实现,visibility: Hide Element。