1. 概述
FineReport 开放了大量的 JS API 给用户,用户利用这些 JS 接口,可实现更多更复杂的功能。
根据执行 JS 的主体不同可以将 FineReport 的 JS API 分为三大类:FR、FS、contentWindow。
2. FR
FR:在 JS 语句中执行使用 FR 的方法或者属性。
例如:FR.Msg.alert,在设计器中可直接使用 FR 中的方法,在外部应用使用 FR 中的方法必须引入 finereport.js。
3. FS
FS:是数据决策系统中的 JS 接口。
例如:FS.tabPane.addItem。
4. contentWindow
contentWindow:是在 Web 页面集成的时候,将 FineReport 报表嵌入在 iframe 中,调用报表对象时使用的接口。
例如:document.getElementById('reportFrame').contentWindow,其中document.getElementById('reportFrame')是获取 iframe 对象,contentWindow 是报表对象,相当于 HTML 中的 Window 对象。
4.1 引用 contentWindow
1)在普通模板中
在普通模板的 JS 脚本中可以直接使用 contentWindow 下的属性,如直接使用 contentWindow中的 contentPane,而不用写 contentWindow,这是因为 JavaScript 脚本本身就在FR 模板中执行的。
2)网页中使用 iframe 嵌入报表
如果文档包含框架( frame或 iframe 标签 ),框架中嵌入了 FR 报表,则会创建一个 contentWindow 对象先获取 iframe,再调用 contentWindow,然后使用 contentWindow 下面的属性,如下所示:
var contentWindow = document.getElementById("reportFrame").contentWindow.XXX;
4.2 contentWindow 常用属性
属性 | 说明 |
---|---|
contentPane | 返回报表容器 |
document | 返回窗口中的文档 |
location | 返回 location 对象 |
window | 返回窗口对象 |
不论是 Web 页面集成里面还是直接在 FR 模板之中,contentWindow 下面最常用的属性当属 contentPane,详细介绍参见下面的索引。