历史版本21 :FR对象使用说明 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 描述编辑
大家知道,预览报表时,报表 servlet 会将 cpt 模板转为 html,在这个 html 的 head 头部中会引入 FR 的 js,如下:
<script type="text/javascript" src="/webroot/decision/view/report?op=emb&resource=finereport.js"></script>
这个 finereport.js 中包含了许多内置的 function 以及一些公有的属性,不管在模板中还是其他网页中,只要引入了 finereport.js ,就能够通过 FR.xxx 的形式调用公有的属性与方法。
所有的地方包括 web 事件、控件事件、超链 js、决策报表事件中都可以获取到 FR 对象。
2. 使用实例编辑
2.1 在模板中使用
如上所述,访问模板时会自动引入 finereport.js,因此在模板的 js 脚本中可以直接使用 FR.xxx 来调用方法:
2.1.1 添加事件
此处以显示对话框为例,先添加一个「初始化后」事件,编辑 JavaScript 脚本,如下图所示:
2.1.2 效果展示
点击保存并分页预览,预览页面会出现一个对话框,如下图所示:
2.2 在网页中使用
如果需要在自己的网页如某个 jsp 页面中调用 FR 的方法,需要先引入 finereport.js ,再通过 FR.xxx 来调用:
2.2.1 插入代码
以在网页自定义导出按钮为例,新建一个 HTML 文件插入代码如下所示代码:
<html>
<head>
<title>FineReport</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="/webroot/decision/view/report?op=emb&resource=finereport.js"></script>
</head>
<body>
<button type="button" onclick="window.open(encodeURI('/webroot/decision/view/report?viewlet=doc/Primary/Parameter/parameter.cpt&地区=华东')+'&format=excel')">导出[Excel]</button>
<iframe id="reportFrame" width="100%" height="100%" ></iframe>
</body>
</html>
2.2.2 效果展示
保存并打开修改后的 HTML 文件,效果如下图所示:
3. 常用方法列表编辑
方法 | 参数 | 返回值 | 说明 |
---|---|---|---|
ajax | void | ajax 请求 | |
closeDialog() | void | 关闭对话框 | |
doHyperlinkByGet(url,config,target,feature) | url 必填,url或 json超链定义; config 选填,传递的参数; target 选填,超链子页的打开位置; feature 选填,超链打开位置的属性 | void | 超级链接,get 传递 config 参数到target 中,并在 feature 里面设置窗口属性 |
doHyperlinkByPost(url,config,target,feature) | url 必填,url或 json超链定义; config 选填,传递的参数; target 选填,超链子页的打开位置; feature 选填,超链打开位置的属性 | void | 超级链接,post 传递 config 参数,并将结果显示在 target 中,并在 feature 里面设置窗口属性 |
doURLPrint(printurl,isPopUp,config) | void | 打印 | |
$.isArray(object) | Boolean | 是否为数组,是返回 true,否返回 false | |
isEmpty(object) | Boolean | 是否为空,是返回 true,否返回 false | |
jsonDecode(jsonEncode String) | String | 对 jsonEncode 过的字符串进行反编码 | |
jsonEncode(String) | String | 对字符串进行 jsonEncode 编码 | |
showDialog(title, width, height, innerContent) | void | 显示一个对话框 | |
remoteEvaluate(String) | 必填,具体公式 | object | 执行 FR 内置公式,返回公式计算的结果。例如:var a = FR.remoteEvaluate("sum(A1,A2)")表示执行sum(A1,A2) |