反馈已提交

网络繁忙

超链当前页跳转后返回原报表

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

    1.1 应用场景

    超链在当前页(当前窗口)打开后,希望点击某个地方可以返回原报表,效果如下图所示:

    1632361457280870.gif

    1.2 实现思路

    子表设置 JavaScript 超链和传参,返回原报表页面。

    2. 示例

    2.1 设计子表

    1)新建普通报表,新建数据集 ds1 ,SQL 语句为:SELECT * FROM 订单明细 WHERE 订单ID='${ID}'

    2)如下图设计表格,数据集中字段拖到对应单元格,其中 F4 单元格写文本返回主表,位置为靠右

    Snag_58dddf39.png

    3)保存报表,重命名为:子表返回.cpt

    2.2 设计主表

    1)新建普通报表,新建数据集 ds1 ,SQL 语句为:SELECT * FROM 订单 WHERE 订单ID='${ID}'

    2)如下图设计报表,将数据集中字段拖到对应单元格中。

    Snag_58c9ea56.png

    3)打开参数面板,将数据集参数ID添加到面板,控件选择下拉框,设置控件默认值10001,并绑定数据字典,如下图所示:

    1630314591632242.png

    4)右边组件设置栏选中para,也就是参数面板,取消勾选点击查询前不显示报表内容」,这样做的目的是预览时会自动查询默认值数据,页面不会什么数据都没有。

    Snag_58d85d8e.png

    5)保存报表,重命名为:主表跳转.cpt

    2.3 主表添加超链

    主表选中 A2 单元格,添加一个网络报表类型的超链,链接到子表返回.cpt,打开方式选择当前窗口,勾选继承报表的参数,如下图所示:

    注:这里没设置参数是因为主表和子表都有相同的数据集参数 $ID ,所以直接勾选「继承报表的参数」即可。

    1630315632651730.png

    2.4 子表添加超链

    子表选中 F4 单元格,添加一个JavaScript脚本类型的超链,设置一个参数ID,其值为公式=A2,下方填写 JavaScript 代码,如下图所示:

    1630315938770621.png

    JavaScript 代码如下:

    location=encodeURI(encodeURI("?viewlet=主表跳转.cpt&ID="))+ID;

    注:代码和参数可以同样适用于点击事件,这样点击控件也能实现该效果。

    2.5 效果预览

    保存主表和子表,分页预览主表,链接到子表后再返回的效果如 1.1应用场景 中所示。

    不支持 App 端和 HTML5 端预览。

    3. 模板下载

    已完成模板参见:

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\主表跳转.cpt

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\子表返回.cpt

    点击下载模板:

    主表跳转.cpt

    子表返回.cpt

    4. 应用拓展

    有的时候想回退到主表,但是不希望控件框中仍然是上次查询的参数,希望是默认的参数值。

    可以将上面例子中子表的 JavaScript 代码修改下,而且不需要设置参数,如下图所示:

    1630380202264034.png

    JavaScript 代码如下:

    window.location.href="javascript:history.go(-1)";

    效果如下图所示:

    1639639351504130.gif

    附件列表


    主题: 报表专题
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    在线QQ:800049425

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

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

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

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

    不再提示

    10s后关闭