报表单元格自适应html的table大小

客户数据库中的某个字段中存的是html类型的数据,是html类型的table,客户希望将这样的table放到报表的单元格中展现,让单元格自适应html里面table的大小,让整个table完全展现。而润乾报表里面的自动换行不能实现客户的效果,所以就需要采取其他的办法,让报表识别出htmltable哪里需要换行,从而对单元格的内容进行换行。下面就用一个例子实现上面的需求。

 

第一步:制作一张报表。

首先制作一张内建数据的报表,数据集的内容是一个htmltable,这里取如下的内容:

<div class=”HtmlContainer”> <table border=”1″ cellpadding=”0″ cellspace=”0″ width=”300″ align=”center”>     <tr>              <td style=”width:60px”>姓名</td>           <td><span style=”color:red”>成龙</span></td>               <td style=”width:60px”>主页</td>             <td><a href=”www.chenglong.com”>成龙在线</a></td>        </tr>      <tr>              <td style=”width:60px”>姓名</td>         <td><span style=”color:red”>成龙</span></td>               <td style=”width:60px”>主页</td>            <td><a href=”www.chenglong.com”>成龙在线</a></td>      </tr>      <tr>              <td style=”width:60px”>姓名</td>            <td><span style=”color:red”>成龙</span></td>               <td style=”width:60px”>主页</td>            <td><a href=”www.chenglong.com”>成龙在线</a></td>      </tr>      <tr>              <td style=”width:60px”>姓名</td>            <td><span style=”color:red”>成龙</span></td>               <td style=”width:60px”>主页</td>            <td><a href=”www.chenglong.com”>成龙在线</a></td>      </tr>      <tr>              <td style=”width:60px”>姓名</td>            <td><span style=”color:red”>成龙</span></td>               <td style=”width:60px”>主页</td>            <td><a href=”www.chenglong.com”>成龙在线</a></td>      </tr>      <tr>              <td style=”width:60px”>姓名</td>            <td><span style=”color:red”>成龙</span></td>               <td style=”width:60px”>主页</td>            <td><a href=”www.chenglong.com”>成龙在线</a></td>      </tr>      <tr>              <td style=”width:60px”>姓名</td>            <td><span style=”color:red”>成龙</span></td>               <td style=”width:60px”>主页</td>            <td><a href=”www.chenglong.com”>成龙在线</a></td>      </tr> </table> </div>

 

然后制作这张报表,报表的样式和数据集的字段类型如下图所示:

第二步:根据table的大小动态设置行高。

 

选中如上图所示报表的第一行,也就是htmltable所在的行,在对应行的行高处写表达式:

count(split(rplc(ds1.select(test),”<tr>”,”|”),”|”))*8 这个表达式的含义是先将htmltable中的<tr>内容替换成竖线,也就是“|,然后将table的内容按竖线分割成一个数组元素,有多少个元素也就代表着table有多少行,所以count这个数组元素的个数,就取到了函数,根据需要table中每行的高度设置成8,所以整个的行高就是count(split(rplc(ds1.select(test),”<tr>”,”|”),”|”))*8

 

报表行高的设置方法如下图所示:

 

 

第三步:预览报表,查看效果。

 

设计好报表后,点击设计器内的预览报表,就可以看到单元格自适应table的大小,table的内容能完全展现出来了,具体的效果如下图所示:

 

 

如上图所示,整个table的内容都完全展现出来了,这样报表单元格自适应table大小的功能就实现了。

热门文章