项目中使用iframe引入填报的报表,jsp页面应该怎么写?

请大神帮忙

FineReport 徒手敬岁月 发布于 2019-4-28 09:47
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
尘埃。Lv2初级互助
发布于2019-4-28 09:50(编辑于 2019-4-28 09:52)

1. 问题描述编辑


现在用户开发的系统基本上趋向于BS架构的浏览器/服务器模式,这些系统可能由不同的语言开发,如HTML、ASP、JSP、PHP等,因此需要将制作好的报表嵌入到这些页面中。

FR报表可以通过iframe框架集成到Web页面中。

2. 实现思路编辑

通过页面的iframe集成方式,可以很好地把其他已经开发好的页面或者模板直接嵌入到我们的模板中,或者把模板嵌入到已有的web页面中,只需要指定iframe的src属性即可

  1. <iframe id="reportFrame" width="900" height="400" src="../../decision/view/report?viewlet=/doc/Primary/Parameter/Parameter.cpt"></iframe>    

用户可以控制iframe的位置来控制报表在页面的什么地方显示,还能够通过iframe获取到报表,从而获取报表内容或调用报表内部现成的方法,我们在后续章节会进行介绍。

注:此方法iframe的src会显示出完整的报表路径,尤其在有参数的情况下,可以使用post方式向iframe提交请求,这样src里有不会出现具体的参数了。

3. 操作步骤编辑

3.1 html文件编写

我们以HTML为例,将报表嵌入到一个HTML页面中:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  

  2. <html>  

  3.  <head>  

  4.   <title>FineReport Demo</title>  

  5.   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  

  6.  </head>  

  7.  <body>  

  8.  <iframe id="reportFrame" width="900" height="400" src="../../decision/view/report?viewlet=/doc/Primary/Parameter/Parameter.cpt"></iframe>  

  9.  </body>  

  10. </html>  

注:如果html页面与集成的模板不在同一个服务器或同一工程下,src需要指定绝对路径

3.2 保存预览

已完成示例请参照%FR_HOME%/webroot/page_demo/Simple.html

启动设计器,输入http://localhost:8075/webroot/help/page_demo/Simple.html,效果如下图:


222


3.3 注意事项

若您希望自己系统页面中的按钮调用FineReport内部现成的js方法如(打印方法),需要加载FineReport的js文件,FR的js采用jquery v1.9.1框架;

实际情况下,一个页面中可能不仅仅只有报表部分,用户可能会加载其他版本的jquery,为避免js冲突,我们建议将报表内容显示在iframe中,而不要显示在div中。


需要调用FR内部的js方法时,可以通过iframe获取报表再调用方法,具体可参考js使用说明文档。



如果解决了您的问题,请及时采纳,谢谢

  • 徒手敬岁月 徒手敬岁月(提问者) 老哥 能否 把具体的jsp页面贴出来
    2019-04-28 09:52 
  • 尘埃。 尘埃。 回复 徒手敬岁月(提问者) 那不是有 html,对比一下就好了
    2019-04-28 09:53 
  • 2关注人数
  • 603浏览人数
  • 最后回答于:2019-4-28 09:52
    请选择关闭问题的原因
    确定 取消
    返回顶部