一个页面显示多个报表及样式问题

客户通常有个常见需求,要求将多个表在一个页面中报表展现与输出" 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只能解析32style,如果一个页面中展示的报表数量超过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’>

<%

}

%>

这样报表样式能正常展示,如图: