Finereport可以自定义一个导出按钮么

 我来答
IT168
2022-12-16 · 百度认证:IT168官方账号,优质数码领域创作者
IT168
IT168是中国最大的个人和企业IT产品选购、互动网站,每日提供最新的IT产品报价、促销行情、手机、平板、笔记本、相机和企业等50个频道提供最专业的产品选购和使用建议。
向TA提问
展开全部
可以的,如果是报表嵌在iframe中,在html页面可直接调用FR内部的导出方法,如导出PDF、导出EXCEL(分页分sheet)、导出word等,界面效果如下:
/iknow-pic.cdn.bcebos.com/38dbb6fd5266d016ae1886df9e2bd40734fa35c7"target="_blank"title="点击查看大图"class="ikqb_img_alink">/iknow-pic.cdn.bcebos.com/38dbb6fd5266d016ae1886df9e2bd40734fa35c7?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/38dbb6fd5266d016ae1886df9e2bd40734fa35c7"/>
需要添加的代码如下:
<button type="button" onclick="document.getElementById('reportFrame').contentWindow.contentPane.exportReportToPDF()">导出[PDF]</button>
<button type="button" onclick="document.getElementById('reportFrame').contentWindow.contentPane.exportReportToExcel('page')">导出[Excel](分页)</button>
<button type="button" onclick="document.getElementById('reportFrame').contentWindow.contentPane.exportReportToExcel('simple')">导出[Excel](原样)</button>
<button type="button" onclick="document.getElementById('reportFrame').contentWindow.contentPane.exportReportToExcel('sheet')">导出[Excel](分页分Sheet)</button>
<button type="button" onclick="document.getElementById('reportFrame').contentWindow.contentPane.exportReportToWord()">导出[Word]</button>
还有一种情况是报表没有嵌入在iframe中或者导出的报表与预览的报表不同,这时可以采用window.open()方法。

这时可以将上述的button的onclick事件修改,代码为:
<button type="button" onclick="window.open(FR.cjkEncode('/WebReport/ReportServer?reportlet=doc/Primary/Parameter/parameter.cpt&地区=华东')+'&format=excel')">导出[Excel]</button>
完整代码如下:
<html>
<head>
<title>FineReport自定义导出</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="/WebReport/ReportServer?op=emb&resource=finereport.js"></script>
</head>
<body>
<button type="button" onclick="window.open(FR.cjkEncode('/WebReport/ReportServer?reportlet=doc/Primary/Parameter/parameter.cpt&地区=华东')+'&format=excel')">导出[Excel]</button>
<iframe id="reportFrame" width="100%" height="100%" ></iframe>
</body>
</html>
博思aippt
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT... 点击进入详情页
本回答由博思aippt提供
就烦条0o
2016-08-04 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
1.描述
FineReport支持多种不同的导出方式,也可以使用js自定义导出按钮。在使用自定义导出按钮后需要查看导出的文件内容是否和报表查询一致,同时弹窗新页面标签名为自定义名称,省去查询按钮。
2.示例

以报表默认模版GettingStarted.cpt为例,在参数面包添加一个按钮,名称为导出,添加一个标签控件和日期控件名称为Riqi
在A20单元格输入="数据时间:" + $Riqi,合并B2~D2单元格,输入="导出日期" + today()

在导出按钮设置JS事件
var DIQU = this.options.form.getWidgetByName("Diqu").getValue(); // 获取地区控件的值
var RIQI = this.options.form.getWidgetByName("Riqi").getValue(); // 获取日期控件的值

为了导出excel需要利用URL直接导出的方法
var REPORT_URL='/WebReport/ReportServer?reportlet=frist.cpt&Diqu='+DIQU+'&Riqi='+RIQI+'&format=excel'; //导出excel

如果URL参数中含有特殊字符还需要对URL进行转义
window.location=(FR.cjkEncode(REPORT_URL)); //调用cjkEncode对URL进行转义

更改标签页名称并打开新窗口刷新数据
window.open('/WebReport
/ReportServer?reportlet='+FR.cjkEncode("frist")+'.cpt&
Diqu='+FR.cjkEncode(DIQU)+'&Riqi='+RIQI);// 更改标签页名称并打开新窗口刷新数据

完整代码如下
var DIQU = this.options.form.getWidgetByName("Diqu").getValue();
var RIQI = this.options.form.getWidgetByName("Riqi").getValue();
var REPORT_URL='/WebReport/ReportServer?reportlet=frist.cpt&Diqu='+DIQU+'&Riqi='+RIQI+'&format=excel';
window.location=(FR.cjkEncode(REPORT_URL));
window.open('/WebReport/ReportServer?reportlet='+FR.cjkEncode("frist")+'.cpt&Diqu='+FR.cjkEncode(DIQU)+'&Riqi='+RIQI);
window.location=(FR.cjkEncode(REPORT_URL));
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式