历史版本16 :自定义按钮 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 问题描述

FR 虽然有内置的工具栏,但是位置与样式比较死,只能固定在报表上方或下方,不灵活。

用户系统已经自己定义了一套工具栏按钮,页面中只需要嵌入报表内容,不使用 FR 的工具栏,如下图,用户自己系统里面自定义的打印与输出按钮,放在页面中报表部分之外,如果需要打印报表,点击自定义的按钮,就可调用 FR 的打印方法进行打印,如下图,那么这种效果该如何实现呢?

1.2 实现思路

对于这种 iframe 中嵌入的报表情况,点击自定义按钮时,先通过 JS 获取到报表所在 iframe,由于此 iframe 中嵌入了 FR 报表,在初始化的时候会创建一个 contentWindow 对象,故接下来使用 contentWindow 获取报表,然后获得 contentWindow 的容器属性 contentPane,最后调用相应的方法。

如报表嵌入在 ID 为 reportFrame 的 iframe 中,那么可以通过下面格式的 JS 代码,调用 FR 内置工具栏的所有方法:

document.getElementById('reportFrame').contentWindow.contentPane.方法名称();

如上图的自定义打印按钮的 click 事件中就可以写如下代码,触发 FR 的打印方法:

document.getElementById('reportFrame').contentWindow.contentPane.pdfPrint();

2. contentPane 下所有工具栏按钮事件及说明编辑

按钮名称方法名称说明
首页gotoFirstPage()跳转到第一页
末页gotoLastPage()跳转到最后一页
上一页gotoPreviousPage()跳转到上一页
下一页gotoNextPage()跳转到下一页
跳转到指定页gotoPage(num)跳转到指定 num 页
零客户端打印noClientPrint(popupMarginSetup, ieQuietPrint)popupMarginSetup:是否弹出设置窗口,true 为弹出,false 为不弹出
ieQuietPrint: IE静默打印设置  true 为静默,false 为不静默
本地打印newNativePrint(popupDialog, serverURL)popupDialog:是否弹出设置窗口,true 为弹出,false 为不弹出
serverURL:报表所在的服务器地址,例如 http://localhost:8080
pdf导出exportReportToPDF()pdf 导出
word导出exportReportToWord()word 导出
excel导出exportReportToExcel('指定格式')参数为 page 时分页导出;simple 原样导出;sheet 分页分 sheet 导出
邮件emailReport()邮件发送
打印预览printPreview()iframe 中的报表为分页预览或者数据分析时才可以用
提交writeReport()强制提交
校验verifyReport()数据校验,只有填报表才可以用
校验并提交verifyAndWriteReport()先对数据进行校验,校验成功则提交数据
插入行列appendReportRC(num)插入 num 行或列,只有填报表才可以用
删除行列deleteReportRC()删除行列,只有填报表才可以用
导入excelimportExcel()在线导入 Excel,只有填报表才可以用
页面设置pageSetup()只有数据分析才可以用

3. 按钮事件的示例链接编辑

首页,末页,上一页,下一页和跳转到指定页详细请参照 自定义翻页按钮

打印详细请参照 JS 调用 FR 打印方法

pdf 导出、word 导出、Excel 导出详细请参照 自定义按钮导出

提交、校验和校验并提交详细请参照 自定义按钮中实现提交操作


索引:

自定义提交按钮

自定义批量导出按钮

自定义翻页按钮

自定义导出按钮

自定义缩放按钮

工具栏上显示数据总个数