报表根据浏览器窗体自动缩放显示

 

背景需求

润乾报表可以在发布报表的 JSP 中通过 scale 这个标签属性控制报表的缩放显示比例,其属性取值为实数,该方式只能通过指定的具体缩放的比例值进行缩放,不能满足根据浏览器的窗体大小进行缩放的需求。

实现思路

在页面初次加载报表和改变窗体大小时,通过 JS 获取浏览器窗体的大小设定为报表所在区域的宽度大小。

实现方法:. 在 showReport.jsp 中加上


function myResize() {

            var tab1 = document.getElementById("report1");

           tab1.style.width=document.body.clientWidth;

           }

window.onload=myResize;

window.onresize=myResize;

   </script>

先获取到报表所在区域的页面元素,再通过 document.body.clientWidth 获得到浏览器的宽度,将该宽度值用于改变报表所在区域的样式宽度。

有的时候会将我们的报表通过 iframe 嵌套到自己的应用里面。按照浏览器的宽度展现会显示不全,  将里面的 tab1.style.width= document.body.clientWidth;

改为 tab1.style.width=“100%”; 即可。

发布报表显示的效果:

imagepng

缩小浏览器窗口显示的效果:

imagepng