动态指定报表行对齐方式

本文以一个简单例子说明报表诸多属性都可以进行控制。

背景

报表中各单元格内容长度不定,当内容较少时垂直水平均居中对齐,当内容长度超过某特定值时,内容在单元格中水平居左垂直靠上对齐。

分析

报表的属性面板中包含了各种单元格对齐方式,可以选定任意对齐方式组合指定单元格内容对齐方式。但若扩展的单元格需实现上面提到的效果,那我们就没办法写死了。可以试图通过对齐方式表达式进行控制,但我们并不知道”居中”该以何种方式给出。

通过查找API,可以看到对齐方式对应的常量值:

public static final byte

HALIGN_CENTER

-47

public static final byte

HALIGN_LEFT

-48

public static final byte

HALIGN_RIGHT

-46

public static final byte

VALIGN_BOTTOM

-30

public static final byte

VALIGN_MIDDLE

-31

public static final byte

VALIGN_TOP

-32

这样,我们就可以非常容易的使用相应常量值进行控制了。

实现

制作一张1010列的报表,

B2单元格的水平对齐表达式中写入:if(len(str(value()))>4,-48,-47),其含义为当内容长度超过4个字符时,水平靠左对齐,否则水平居中对齐;

纵向对齐表达式中写入:if(len(str(value()))>4,-32,-31),其含义为当内容长度超过4个字符时,垂直靠上对齐,否则垂直居中对齐。

可以看到,这里我们就是在使用对应的对齐方式常量值。

预览效果可以看到:

总结

本文的小例旨在说明,润乾报表中属性的可控范围是很广的,经常查API文档是个不错的解决问题的途径。

热门文章