反馈已提交

网络繁忙

超链跳转后返回原Tab

  • 文档创建者:Leo.Tsai
  • 编辑次数:2次
  • 最近更新:Leo.Tsai 于 2021-09-13
  • 1. 概述

    1.1 应用场景

    决策报表主表从不同 Tab 页跳转超链到子表后,子表页面可以点击按钮返回主表的原 Tab 页,如下图所示:

    1631520756808152.gif

    1.2 实现思路

    主表超链传参时传当前 Tab 的序号。子表的按钮点击事件中接收该参数值,并携参跳转回主表。主表根据回传的参数值打开指定 Tab 页。

    2. 示例

    2.1 设计主表

    1)新建一张决策报表,body 中拖入一个 Tab 块,在 Tab 块中新增 3 个 Tab ,标题分别命名为:Tab0、Tab1、Tab2。

    这 3 个 Tab 中都拖入一个报表块,报表块名称分别为:report0、report1、report2,如下图所示:

    Snag_206397c4.png

    2)这 3 个 Tab 里的报表块都在 A6 单元格插入文本,都给这个单元格设置超链,链接到子表(子表还未设计,可以先新建一个空白的保存到本地路径下)

    超链中设置参数a,其值为当前 Tab 组件的序号,例如:Tab0 中的超链值为公式=0,Tab1 中的超链值为公式=1。

    1631522423375784.png

    2.2 设计子表

    1)在空白的子表 body 中拖入一个按钮控件,修改按钮名字为:点击返回,并给按钮添加一个点击事件,实现跳转回主表的效果。如下图所示:

    1631522837167250.png

    事件需要设置参数backtogo,其值为公式=CONCATENATE(serverURL,servletURL,'?viewlet=Form13.frm&a='+$a),JavaScript 代码如下:

    var backto=backgoto;
    self.location.href=(backto);

    2.3 跳转原Tab

    主表 body 还需要配置一个初始化事件,判断子表传过来的参数a是否有值,如果有值,则跳转到对应的 Tab 页,如果没有值,则不跳转。

    Snag_207c9569.png

    事件需要设置参数a,其值为公式=$a,JavaScript 代码如下:

    setTimeout(function(){ 
    if(a){
    _g().getWidgetByName('tabpane0').showCardByIndex(a);
    }
    },100)

    注:代码中的延时一定要有,否则前端预览时报错。

    2.4 效果预览

    保存并预览报表, 实际效果如 1.1应用场景 中所示。

    该方法不支持 App 端和 HTML5 端预览。

    3. 模板下载

    已完成模板参见:

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\

    点击下载模板:

    超链跳转后返回原Tab主表.frm

    超链跳转后返回原Tab子表.frm

    附件列表


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

    售前咨询电话

    400-811-8890转1

    在线技术支持

    在线QQ:800049425

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

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

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

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

    不再提示

    10s后关闭