动态指定报表行对齐方式
本文以一个简单例子说明报表诸多属性都可以进行控制。
背景
报表中各单元格内容长度不定,当内容较少时垂直水平均居中对齐,当内容长度超过某特定值时,内容在单元格中水平居左垂直靠上对齐。
分析
报表的属性面板中包含了各种单元格对齐方式,可以选定任意对齐方式组合指定单元格内容对齐方式。但若扩展的单元格需实现上面提到的效果,那我们就没办法写死了。可以试图通过对齐方式表达式进行控制,但我们并不知道”居中”该以何种方式给出。
通过查找API,可以看到对齐方式对应的常量值:
public static final byte |
-47 |
|
-48 |
||
public static final byte |
-46 |
|
public static final byte |
-30 |
|
public static final byte |
-31 |
|
public static final byte |
-32 |
这样,我们就可以非常容易的使用相应常量值进行控制了。
实现
制作一张10行10列的报表,
在B2单元格的水平对齐表达式中写入:if(len(str(value()))>4,-48,-47),其含义为当内容长度超过4个字符时,水平靠左对齐,否则水平居中对齐;
纵向对齐表达式中写入:if(len(str(value()))>4,-32,-31),其含义为当内容长度超过4个字符时,垂直靠上对齐,否则垂直居中对齐。
可以看到,这里我们就是在使用对应的对齐方式常量值。
预览效果可以看到:
总结
本文的小例旨在说明,润乾报表中属性的可控范围是很广的,经常查API文档是个不错的解决问题的途径。