报表工具对比之样式——BIRT报表VS润乾报表

文章《免费开源JAVA报表工具对比 BIRT报表VS润乾报表之初体验》中,分别使用两种报表工具(BIRT和润乾报表)做了清单式报表,不过由于报表中并没有做任何样式调整,因此预览的效果看起来比较枯燥单一、不够美观,而且跟整个大平台的色调也不统一。今天我们就来看看怎样通过样式来美化报表。 下面还是分别看一下BIRT报表和润乾报表对于需求样式的满足度以及处理方式。

 

样式要求: 1. 满足常规的样式调整,如:字体、字号、前景色、背景色、边框等等; 2. 根据条件做出数据预警,如:金额大于8000元,字体红色显示; 3. 冻结表头,如:excel中不分页冻结窗口的效果; 4. 表体数据区域隔行异色显示; 5. 显示格式,如:金额显示货币符号; 6. 转换显示值,如:数据库查出来性别字段值是0,1,那么为了增加可读性将0显示为”男”,1显示为”女”。

 

下面开始分别操作进行对比: BIRT 常规样式调整: 1. 可以满足,实现方式如下: 选中所要设置的网格,在属性编辑器Properties  Editor中,选择 General进行网格基本样式设置,包括Font、Size、Color、Background color等。如下图所示: 注:不仅是对于单元格,对于其他的报表元素,如:Lable、Table、Data等也都可以设置。  

数据预警:

2. 不能满足,暂时未找到实现方法

冻结表头:

3. 不能满足,暂时没找到实现方法

注:没有找到不分页冻结表头的实现方式,不过在找的过程中意外发现了分页时每页显示表头的设置方式,如下图所示(记一下以备后面的不时之需……)

表体数据区隔行异色:

4. 可以满足,实现方式如下: 鼠标指在表格处,会在表格下方出现“Table”按钮,点击一下全选表格,再点击左边选择“Detail”行 切换到“Script”页,从下拉列表中选择“OnCreate”,(这个选择项一定别搞错了,不然就悲剧了…哎)加入如下代码: if(row.__rownum % 2 == 0) {     this.getStyle().backgroundColor = "#FAD764"; } else{     this.getStyle().backgroundColor = "#FFFFFF"; }

效果:

 

显示格式:

5. 可以满足,实现方式如下: 选中所要设置的网格,在属性编辑器Properties  Editor中,选择 Format Number 或 Format DateTime 或Format String进行网格的显示格式设置,如下图所示

 

其中

 Format Number来设定数字的格式;

 Formt Date Time来设定时间日期的格式;

 Format String来设定字符型数据的格式。

转换显示值:

6. 可以满足,实现方式如下: 选中设置的字段,在属性编辑器Property Editor – Data中,选择Advanced然后选择Data找到On render属性,把属性编辑为if(this.getValue()=="CA"){this.setDisplayValue("加利福尼亚州");}  

效果:

设置前

 

设置后,把英文缩写的州名,转换成中文增强可读性。  

润乾报表

常规样式调整:

1. 可以满足,实现方式如下: 选中所要设置的网格,在工具栏编辑器中,选择进行网格的基本样式设置,包括字体、字号、字体颜色、网格背景色等。如下图所示:   

注:除工具栏编辑器中可以对网格基本样式进行设置外,也可以在右侧属性编辑器中选择显示、字体进行设置。

数据预警:

2. 可以满足,实现方式如下: 选中所要设置的网格,在属性编辑器中选择显示,然后选择前景色在表达式里填写表达式为: if(E2>3,-65536,-16777216) 

效果:

 

冻结表头:

3. 可以满足,实现方式如下:

选择表头行,在属性编辑器中选择行属性,然后在行类型下拉选项中选择报表头,设置后对应行的行首会显示一个“头”字。  

效果:

  

注:为了突出表头简单设置了表头的样式。

表体数据区隔行异色:

4. 可以满足,实现方式如下:

选中表体部分,在属性编辑器中选择显示,然后选择背景色在表达式里填写表达式为: if(row()%2!=0,-14336,-1),其中row()是润乾内置函数,取得当前单元格所在行的行号。 效果:

   

显示格式:

5. 可以满足,实现方式如下: 选中设置的字段,在属性编辑器中,选择值然后选择显示格式,双击值单元格选择设置,或者自定义    

转换显示值:

6. 可以满足,实现方式如下: 选中设置的字段,在属性编辑器中,选择值然后选择显示值表达式为 map(list(1,2,3,4,5),list("哲学","经济学","教育学","理学","工学")),其中用到两个润乾内置函数:map()显示值对照表函数,从对照表中找出当前单元格对应值的显示值;list()获得一个枚举的数据集合。    

效果:

设置前

    

设置后,把数字编号转换成了专业名称增强了可读性。

  

除了这个办法,还可以选用if()或数据集的方法做显示值转换。

注:显示值与显示格式的进一步设置方式可以参考文档 http://c.raqsoft.com.cn/article/1543563271737

总结一下:

posted on 2019-01-09 17:20  IBelieve002  阅读(489)  评论(0编辑  收藏

导航