如何利用FineReport自定义批量导出

 我来答
fk...d@163.com
2016-12-26 · TA获得超过100个赞
知道小有建树答主
回答量:366
采纳率:50%
帮助的人:283万
展开全部
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

提交
取消

辅 助

模 式