历史版本25 :全局接口-FS 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. FS编辑

FineReport.js 中除了包含 FR 的属性和方法之外,还包含了对决策系统进行操作的属性和方法。

报表中所有的地方包括 Web 事件、控件事件、超链 JavaScript 脚本、决策报表事件中都可以通过 window.parent.FS 来获得 FS 对象

1.1 FS.Trans.signOut()

(1)PC 端退出决策平台系统

可以在任何可以写 JavaScript 的地方进行调用,含有该语句的模板需要在决策平台中打开,否则会报错。

window.location.href = window.parent.FS.Trans.signOut();

(2)App 端登出决策平台系统

可以在任何可以写 JavaScript 的地方进行调用。

FR.logoutApp();

详细请查看 登出 App 的 JavaScript 。

1.2 FS.tabPane.closeActiveTab()

关闭当前决策平台的标签。

可以在报表中任何可以用 JavaScript 的地方进行调用。

window.parent.FS.tabPane.closeActiveTab();

注:因为报表在 iframe 里,先获取当前 window.parent 后然后再找到 FS。

1.3 FS.tabPane.addItem

在决策平台中打开新标签页。

可以在报表中任何可以 JavaScript 的地方进行调用。

   参数  类型  说明  
  entry  Object  必填,tab 项对应的 entry 对象

entry以json格式提供,属性如下表:

属性    类型说明  
  title  String  标签页的标题
  src  String  标签页的内容指向的地址
window.parent.FS.tabPane.addItem({title:"baidu",src:"http://www.baidu.com"})

2. 示例编辑

前面两个接口很简单,这里不再举例说明,下面详细介绍一下第三个接口,即在数据决策系统中打开一个新 Tab。

2.1 描述

数据钻取是使用超级链接实现,打开方式有三种,当前窗口,对话框,新窗口。

前面两种方式很好理解,第三种在新窗口中打开,即在浏览器端打开一个新的 Tab 页面,如果是在数据决策系统中使用,希望实现在决策系统框架下新增一个 Tab 页签,而不是在浏览器端重新打开一个窗口,这个该怎么实现呢?

注:还可通过安装插件实现平台内打开新标签,详情可参考:平台内打开新标签 。

2.2 模板

下面以%FR_HOME%\demo\basic\数据钻取主报表.cpt为例,该模板中实现了在当前窗口的钻取功能,下面将在当前窗口打开换成在新的 Tab 页面中打开。

2.3 超级链接

实现效果:将「订单明细」的钻取修改成在数据决策中打开一个新的 Tab 页面,新 Tab 页面的标题为「订单明细」。

打开模板,选中 A5 单元格,在右侧属性面板中选择超级链接,添加一个「JavaScript脚本」链接;

添加参数 ID,参数值为当前单元格的值,参数 ID 的值用「公式」表示,为 $$$ 

具体设置如下图所示:

1572281218335609.png

代码如下所示:

window.parent.FS.tabPane.addItem({title:"订单明细",src:"${servletURL}?viewlet=demo/basic/数据钻取子报表订单明细.cpt&
订单号="+ID})

上述代码中,「title」代表订单明细模板,「src」代表订单明细模板的路径。

注:src 最后的 & 符号为参数的传递,即将当前单元格的值传递给参数 ID,然后再 src 的路径后面拼接字符串,将 ID 参数的值传递给需要打开的新模板中的订单号参数。

2.4 效果查看

注:需要在决策平台中打开该模板,否则会提示错误。

1572282088121461.gif