FineReport JS API深度解析:FS与contentWindow类别

需积分: 50 13 下载量 67 浏览量 更新于2024-09-11 收藏 660KB PDF 举报
Web报表工具FineReport的JS API开发深入探讨了三种主要的执行主体类别:FR、FS和contentWindow。其中,FS (Data Decision System JS Interface) 是特别关注的数据决策系统内的API,它提供了一系列与系统交互的方法。 1. **FS API的使用** - FS.Trans.signOut():用于退出数据决策平台系统,确保了权限管理和安全性。 - FS.tabPane._doCloseTab() 和 _getSelectedTab():用于关闭当前活动的标签页,支持用户界面管理。 - FS.tabPane.addItem():关键功能,允许在决策平台上添加新标签页,例如打开网页或调用其他模板。这个方法接受一个对象,包含title(标签页标题)和src(目标URL)属性。 2. **数据钻取与新tab打开** - 数据钻取通常通过超级链接实现,可选择在当前窗口、对话框或新窗口打开。新窗口打开时,需要在决策系统内创建新的tab,而非浏览器独立打开,这就涉及到如何在FS环境中模拟这种行为。 - 以DetailedDrillA.cpt模板为例,原有的在当前窗口的钻取功能需要调整为在新tab中打开。开发者需找到模板中的A4单元格的超级链接设置,将原有链接修改为使用window.parent.FS.tabPane.addItem(),传递参数ID,并将单元格值作为ID值传递给新打开的模板。 3. **修改超级链接** - 在JavaScript超链接设置中,添加ID参数,其值等于当前单元格的值,如ID=“$$$”。然后,将这个ID值附加到src(目标URL)后,以便在新tab中加载相应的模板,同时传递订单号等其他参数。 4. **代码实现** - 实现代码的关键部分是`window.parent.FS.tabPane.addItem()`,示例如下: ```javascript window.parent.FS.tabPane.addItem({ title: "订单明细", src: "路径/订单明细模板?ID=" + encodeURIComponent($$$) // 使用encodeURIComponent处理特殊字符 }); ``` 这段代码确保了在数据决策系统的上下文中,以新tab的形式打开指定的订单明细模板,并且参数ID正确传递。 总结来说,FineReport的JS API开发不仅涉及基础的界面操作,还涵盖了如何在数据决策系统的特定环境下处理复杂的用户体验需求,如在新tab中打开页面。通过熟练掌握这些API,开发者可以构建出功能丰富、定制化的报表应用。