知识库

推荐内容

快逸做的更好

产品优势

您的位置: 首页 > 知识库 > 填报技术 > 博计报表巧设行距

博计报表巧设行距

博计报表巧设行距

一些客户由于自己业务需求的特殊性,需要对报表某些单元格的内容设置行距,这个行距还需要客户可以根据自己的需求调整,并且这个行距要求在导出和打印的时候仍然有效。这样之前的用 css 控制行距的办法就没有办法满足客户的需求了,因为 css 控制的行距在打印和导出的时候没有效果,下面就用一个比较简单的例子实现上面的需求。

实现思路:将对应的内容放到单元格中,合并单元格,在需要调整行距的时候拖动单元格的高度,来实现控制行高的效果,而其实是将需要调整行距的内容放到了报表的不同行中,调整的其实就是各行的高度。

第一步:制作一张报表。

首先制作一张报表,报表的大概样式和数据如下图所示:

上图数据集中 BEGIN 字段的内容为:

孙金 91 ,男,汉族, 1963 11 月出生,山东省诸城县人,硕士研究生,工学硕士学位, 1988 6 月参加工作, 1998 7 月加入中国共产党,高级工程师,现任广东电网公司营销科科长。

第二步:根据客户的需要只要伪行高的效果。

见上图 A1 单元格的内容, A1 单元格的内容为:

=to(1,if(len(employee.Select1(BEGIN))%25==0,len(employee.Select1(BEGIN))/25,int(len(employee.Select1(BEGIN))/25)+1))

上面表达式的含义是让 A1 单元格扩展,首先取到数据集里面 BEGIN 字段的内容,然后根据自己的需要(这里需要每行显示 25 个子)对每行显示多少个字取余,如果能被这个每行的指数取余,那么就扩展出总字数除以每行字数所得结果的行数,如果不能整除,那么 A1 单元格就扩展出总字数除以每行字数所得结果 +1 的行数。

这里值得注意的是 A1 的单元格合并了一些行,作用是到时候可以自己调整合并行的高度,达到调整行距的效果。

A2 单元格写入内容为:

= mid(employee.Select1(BEGIN),(A1-1)*25,A1*25)

这个表达式的含义是,由于 A1 单元格规定了每行为 25 个字,那么这里就把对应行应该显示的那 25 个子取出来, (A1-1)*25 A1*25 的作用是动态控制需要取哪 25 个字。

报表各单元格的内容如下图所示:

第三步:发布报表,查看效果。

把报表部署到 IIS 服务器上,即可在页面中看到设置的行高效果。

具体的样式如下图所示:

这样通过上面几步的设置,动态调整行距的需求就巧妙的实现了。

发布日期:2014/05/12
本文分类: 填报技术