1. FS编辑
FineReport.js 中除了包含 FR 的属性和方法之外,还包含了决策系统相关的属性和方法。
报表中的 Web 事件、控件事件、JavaScript 类型的超级链接、决策报表事件中都可以通过 window.parent.FS 来获得 FS 对象。
1.1 FS.signOut()
该方法可以登出数据决策系统。
1)PC 端登出数据决策系统
模板中添加事件调用该方法,将模板挂载到决策平台目录,预览模板执行该事件,会自动退出登录,返回决策平台登录界面。JavaScript 代码如下:
window.location.href = window.parent.FS.signOut();
注:需要在决策系统中打开该模板,否则会报错。
2)App 端登出数据决策系统
模板中添加事件调用该方法,移动端预览模板执行该事件,会自动退出登录,返回 App 端数据决策系统登录界面,详细介绍参见文档:JS实现登出App ,JavaScript 代码如下:
FR.logoutApp();
1.2 FS.tabPane.closeActiveTab()
该方法可以关闭数据决策的标签页,JavaScript 代码如下:
window.parent.FS.tabPane.closeActiveTab();
注:因为报表在 iframe 里,先获取当前 window.parent 后然后再找到 FS。
1.3 FS.tabPane.addItem
该方法可以在数据决策系统中打开新标签页,JavaScript 代码如下:
window.parent.FS.tabPane.addItem({title:"baidu",src:"http://www.baidu.com"})
参数 entry 说明:
参数 | 类型 | 说明 |
---|---|---|
entry | Object | 必填,tab 项对应的 entry 对象 |
entry 以 json 格式提供,属性如下表所示:
属性 | 类型 | 说明 |
---|---|---|
title | String | 标签页的标题 |
src | String | 标签页的内容指向的地址 |
2. 示例编辑
前面两个接口很简单,这里不再举例说明,下面详细介绍一下第三个接口,即在数据决策系统中打开一个新 Tab 页。
数据钻取是使用超级链接实现,打开方式有三种,当前窗口,对话框,新窗口。
前面两种方式很好理解,第三种在新窗口中打开,即在浏览器端打开一个新的 Tab 页面。
如果是在数据决策系统中使用,希望实现在决策系统框架下新增一个 Tab 页签,而不是在浏览器端重新打开一个窗口,这个该怎么实现呢?
注:还可通过安装插件实现平台内打开新标签,详情可参考:平台内打开新标签
2.1 打开模板
下面以 %FR_HOME%\demo\basic\数据钻取主报表.cpt 为例,该模板中实现了在当前窗口的钻取功能,下面将在当前窗口打开替换成在新的 Tab 页面中打开。
2.2 超级链接
实现效果:将「订单明细」的钻取修改成在数据决策中打开一个新的 Tab 页面,新 Tab 页面的标题为「订单明细」。
打开模板,选中 A5 单元格,在右侧属性面板中选择超级链接,添加一个 JavaScript 脚本类型的超级链接。
添加参数 ID,参数值为当前单元格的值,即公式 $$$ 。如下图所示:
JavaScript 代码如下:
window.parent.FS.tabPane.addItem({title:"订单明细",src:"${servletURL}?viewlet=demo/basic/数据钻取子报表订单明细.cpt&订单号="+ID})
title:模板名称
src:模板路径
注:src 最后的 & 符号为参数的传递,即将当前单元格的值传递给参数 ID,然后再 src 的路径后面拼接字符串,将 ID 参数的值传递给需要打开的新模板中的订单号参数。
2.3 效果预览
注:需要在决策平台中打开该模板,否则会提示错误。
3. 注意事项编辑
若 FineReport 工程集成到 FineBI 数据决策系统上使用,登录 FS 需要有 FR 决策平台功能点的同时,还需要有 FineBI 决策平台的功能点。
注册 FineReport 决策平台功能点参见文档:FineReport 服务器注册步骤
注册 FineBI 决策平台功能点参见文档:FineBI服务器注册步骤