如何动态改变报表的行高列宽

报表应用中有时需要动态控制行高或列宽以满足特定需要。如分组报表中要求每个分组的总高度 / 宽度固定不变,这样一来就能实现每页纸打印相同数量的分组。

润乾报表可以在行高列宽属性中编写表达式,从而实现动态行高列宽,下面通过一个例子说明使用过程。

1、连接数据源

使用润乾报表设计器,连接自带数据源 DEMO

imagepng

2、设置数据集

新建报表并设置数据集,使用 SQL 取数

imagepng

数据集 ds1 如下:

SELECT STATE,EID,NAME,SURNAME,GENDER,DEPT,SALARY FROM EMPLOYEE

3、编辑报表单元格表达式

在报表模板中编写报表表达式

imagepng

至此,报表使用固定行高的显示效果如下:

imagepng

4、设置动态行高

由于分组行高与每个分组数量直接相关,因此在第 2 行的高度属性中写入表达式:40/ds1.count(STATE==A2),如下图:

imagepng

其中 ds1.count(STATE==A2) 计算当前组的行数(成员数量)。

设置动态高度后,报表预览效果如下:

imagepng

可以看到每个分组的总高度固定,但其中各项明细的行高度会根据成员数量动态改变。

上面的例子对行高进行了动态控制,而在润乾报表中行列是对称的,所以通过类似的方式可以设置动态列宽。总之,润乾报表中几乎所有的单元格属性都可以通过编写表达式进行动态控制。