反馈已提交

网络繁忙

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

  • 文档创建者:yiyemeiying
  • 历史版本:12
  • 最近更新:Alicehyy 于 2024-07-04
  • 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().getParameterContainer().getWidgetByName("A").setValue()

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

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

    2.3 效果预览

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

    注:不支持移动端。

    附件列表


    主题: 填报应用
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持