FineReport——JS二次开发(自定义翻页按钮)
FR允许自定义工具栏上面的按钮,并提交JS方法:
对于翻页功能,大概有首页,下一页,上一页,最后一页,以及跳转页等功能。
不得不说的是,在HTML页面自定义的按钮如何获取到报表模板,通过FR提供的JS方法,可以获取到这个模板(reportFrame为html标签iframe的id名称):
document.getElementById('reportFrame').contentWindow.contentPane.方法名称();
首页:
document.getElementById('reportFrame').contentWindow.contentPane.gotoFirstPage();
下一页/上一页/最后一页:
gotoPreviousPage()/gotoNextPage()/gotoLastPage()
页码显示,既以当前页/总数页的格式显示页码:
function afterload() { //iframe加载后触发 var contentPane = document.getElementById("reportFrame").contentWindow.contentPane; //获取报表contentPane var cPageIndex = contentPane.currentPageIndex; //当前所在页 var pv = "第" + cPageIndex + "页/共" + contentPane.reportTotalPage + "页"; //报表首次加载结束后显示的页码信息 document.getElementById("page").value = pv; //将页码信息赋给page文本 contentPane.on("afterload", function() { //报表加载结束监听事件 cPageIndex = contentPane.currentPageIndex; //每次加载完后重新获取当前页码 pv = "第" + cPageIndex + "页/共" + contentPane.reportTotalPage + "页"; //重新生成页码信息 document.getElementById("page").value = pv; //重新给page文本赋页码信息 }); }
跳转页(需要注意的是,跳转到的页码必须是数值型,而文本框的输入值为字符型,所以需要转换数据类型):
function gotopage() { var contentpane= document.getElementById('reportFrame').contentWindow.contentPane; var page = document.getElementById("index").value; if(page >= contentpane.reportTotalPage) { contentpane.gotoLastPage(); } contentpane.gotoPage(parseInt(page)); }