一个页面显示多个报表及样式问题
客户通常有个常见需求,要求将多个表在一个页面中报表展现与输出" target="_blank" class="geeznLink8">展现,多个报表表样相同,只不过根据不同的参数返回不同的数据,比如在一个页面中展示多个省份的数据,并且不需要用tab页形式展现,要在页面上循环输出,如图:
实现方式:
在展示报表的jsp中的tag标签处做个循环输出即可:
<%
for(int i=1;i<=35;i++){
String name=”report”+i;
String params=”arg1=”+i;
%>
<report:html name=”<%=name%>” reportFileName=”duobiao.raq”
funcBarLocation=”top”
needPageMark=”yes”
width=”-1″
params=”<%=params%>”
/>
<%
}
%>
注意在tag标签里的name的值要求动态变化,否则页面展示会出现问题。
但这里有一点,如果浏览器为IE浏览器,IE只能解析32个style,如果一个页面中展示的报表数量超过31个时,报表的格式会丢失,如:
如果换做firefox浏览器则能正常展示。目前客户浏览器版本多为IE,所以要换用其他方式实现该需求。
解决办法:可通过iframe嵌套方式将多个页面嵌套在一个页面,这样就能解决该问题,代码如下:
<%
for(int i=1;i<=35;i++){
String name=”report”+i;
%>
<iframe src=”../reportJsp/showReport.jsp?raq=duobiao.raq&arg1=<%=i%>” width=’800′ height=’280′ border=’no’>
<%
}
%>
这样报表样式能正常展示,如图: