反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

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

  • 文档创建者:yiyemeiying
  • 历史版本:9
  • 最近更新:星踪 于 2021-04-26
  • 1. 概述

    1.1 需求描述

    当填报通过子报表实现时,希望子报表填报成功后,数据能马上在主报表中显示出来,通常采用的方法是刷新主报表,要如何设置才能实现子报表填报成功后刷新主报表呢?效果如下图所示:

    222

    1.2 实现思路

    在子模板中添加「填报成功」事件,事件内容为重新加载主模板。接口说明可以参考:页面交互接口

    2. 示例

    2.1 准备模板

    模板:内置模板 %FR_HOME%\\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\Hyperlink5.cpt

    子模板:内置模板%FR_HOME%\\webapps\webroot\WEBINF\reportlets\doc\SpecialSubject\HyplinkReport\Hyperlink6.cpt

    点击下载模板:HyperLink5.cpt    HyperLink6.cpt

    主模板报表样式如下图所示:

    image.png

    子模板报表样式如下图所示:

    image.png

    示例主模板中 A1 单元格已添加了超链接到子模板,用户参考时超链接可按实际应用添加,注意超链接需传递填报预览参数op=write 给子模板,如下图所示:

    image.png

    2.2 子模板添加事件

    打开子模板 Hyperlink6.cpt,点击菜单栏「模板>模板Web属性」,选择「填报页面设置>为该模板单独设置」,为子模板添加一个「填报成功」事件,如下图所示:

    2020-11-24_19-06-46.png

    JavaScript 代码如下:

    window.parent.location.reload();
    //刷新父窗口

    window.parent返回的是父窗口对象,等同于在父窗口执行相关方法。比如想要给父窗口参数面板上的控件A赋值,则JS为window.parent._g().parameterEl.getWidgetByName("A").setValue()

    如果希望刷新父窗口时,保留参数面板所选的控件值,则需要使用以下JavaScript 代码:

    window.parent._g().parameterCommit();
    //父窗口重新查询


    2.3 效果预览

    打开主模板 Hyperlink5.cpt,点击「分页预览」,在主报表中点击订单ID,在弹出的对话框子报表中修改数据,点击提交后,主报表即可自动刷新,效果如 1.1 节所示。

    注:不支持移动端

    附件列表


    主题: 填报应用
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526