JS实现子窗口填报后刷新父页面

编辑
  • 文档创建者:yiyemeiying
  • 浏览次数:8116次
  • 编辑次数:5次
  • 最近更新:cherishdqy 于 2019-04-21
  • 1. 需求描述

    当多窗口填报时,希望子窗口填报成功后,数据能马上在父窗口中显示出来,通常采用的方法是刷新父窗口,但现在触发刷新事件是在子窗口中,而父窗口又无法获取子窗口填报成功的事件。要如何设置才能实现子窗口刷新父页面呢?

    222

    2. 解决方案

    打开填报的子模板,在子模板中添加填报成功事件。

    3. 示例

    3.1 打开模板

    打开子模板:%FR_HOME%\\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\Hyperlink6.cpt

    3.2 添加填报成功事件

    在打开的子模板中,点击菜单模板>模板Web属性>填报页面设置,选择为该模板单独设置,添加填报成功事件,如下图所示:

    222

    JS代码如下:

    window.parent.location.reload();

    3.3 效果预览

    打开主模板:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\Hyperlink5.cpt

    点击订单ID,在新对话框中修改数据,点击提交后,即可自己刷新主模板,效果如描述中所述。

    4. 示例-保留父页面查询参数

    4.1 父模板添加查询参数

    打开父模板:%FR_HOME%\\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\Hyperlink5.cpt

    1)数据集ds1修改为:SELECT * FROM 订单 where 1=1 ${if(len(客户ID)=0,""," and 客户ID='"+客户ID+"'")}

    222

    2)编辑参数面板,添加下拉控件客户ID和查询按钮,并配置客户ID控件的数据字典:

    222

    3)点击参数面板空白处,将点击查询前不显示报表内容前面的勾去掉:

    222

    4)回到单元格设计界面,编辑A2单元格添加的超级链接-网络报表1,将网络报表1窗口中的继承报表的参数前面的勾选上:

    222

    4.2 修改子模板js代码

    打开子模板:%FR_HOME%\\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\Hyperlink6.cpt

    点击菜单模板-模板Web属性-填报页面设置,编辑之前添加好的填报成功事件,在事件设置窗口的参数面板添加一个参数ID,值为公式:$客户ID

    注:公式中的参数客户ID为父模板中的下拉框控件。

    并修改下面的js代码:

    window.parent.location="http://localhost:8075/webroot/decision/view/report?viewlet=HyperLink5.cpt&客户ID="+ID;

    222

    4.3 效果预览

    打开主模板:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\Hyperlink5.cpt

    查询客户名称,点击订单ID,在新对话框中修改数据,点击提交后,即可保留查询参数刷新主模板,效果如下所述。

    222

    附件列表


    主题: 设计思路
    标签:
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]