1. 概述编辑
1.1 问题描述
在制作报表的过程中,我们通常只能对整行(列)单元格对齐方式进行统一设置。方法:单元格属性 -> 样式 -> 自定义样式 -> 对齐 -> 水平(垂直)对齐。
但有时候,用户需求:对某行(列)满足一定条件的单元格单独设置,那我们该如何实现这一功能呢?
实现效果如图:
注:(次数)列,单元格内容默认:居中对齐,小于 100000 的水平靠左对齐,大于 150000 的水平靠右对齐。
1.2 思路
通过设置单元格条件属性(新值)后,用 HTML 显示内容来实现。
水平靠左 :
CONCATENATE("<div align='left'>"+$$$+"</div>")
水平居中 :
CONCATENATE("<div align='middle'>"+$$$+"</div>")
水平靠右 :
CONCATENATE("<div align='right'>"+$$$+"</div>")
垂直靠上 :
CONCATENATE("<div valign='top'>"+$$$+"</div>")
垂直居中:
CONCATENATE("<div valign='middle'>"+$$$+"</div>")
垂直靠下 :
CONCATENATE("<div valign='bottom'>"+$$$+"</div>")
注:也可以通过下载 单元格对齐条件属性插件 来实现,此插件不支持移动端。
2. 示例编辑
以纵向扩展单元格 C2 为例:
对齐方式:默认水平居中,垂直居中;
条件属性:当 C2 的值小于 100000 时,水平靠左;当 C2 的值大于 150000 时,水平靠右。
2.1 准备数据
新建数据集 ds1,SQL 语句:SELECT * FROM "TOP10车型"
2.2 模板设置
将数据集中的字段拖到单元格中,并设置内容居中,样式如下图所示:
2.3 条件设置
选中 C2 单元格,右键-条件属性-新增条件属性 1。
属性公式:$$$>150000,新值公式:CONCATENATE("<div align='right'>"+$$$+"</div>")
同理:右键-条件属性-新增条件属性2。
属性公式:$$$<100000,新值公式:CONCATENATE("<div align='left'>"+$$$+"</div>")
2.4 属性设置
选择 C2 单元格,单元格属性表>其它属性>显示内容,用 HTML 显示内容。
3. 保存预览编辑
点击预览,效果如上图。
已完成模板请查看%FR_HOME%\webroot\WEB-INF\reportlets\doc\Form\LineForm\自定义单元格对齐方式.cpt
点击下载模板:自定义单元格对齐方式.cpt