FineReport支持多種不同的導(dǎo)出方式,直接使用FineReport內(nèi)置導(dǎo)出按鈕可以非常快捷方便的來對各種格式的輸出,但是我們在web頁面集成中的時(shí)候,往往只想將報(bào)表內(nèi)容嵌入到iframe中,而工具欄以及工具欄上的按鈕都會隱藏掉,而使用web頁面自定義的按鈕,那么,此時(shí),這種自定義按鈕如何實(shí)現(xiàn)導(dǎo)出呢? 
如上圖所示,新建一個(gè)html頁面,定義一個(gè)工具欄和一個(gè)iframe,工具欄中定義上圖所示的按鈕,iframe中嵌入FineReport中的報(bào)表,如下圖: 
FineReport報(bào)表設(shè)置
打開設(shè)計(jì)器,找到上面web頁面中嵌入的那張模板,由于要使用自定義按鈕作為工具欄,那么FineReport報(bào)表內(nèi)置的工具欄就無需顯示出來。點(diǎn)擊模板>模板web屬性>分頁預(yù)覽設(shè)置,去掉使用工具欄前面的勾選,如下圖:

自定義導(dǎo)出按鈕
Web頁面中定義了9個(gè)自定義導(dǎo)出按鈕,那么怎樣才能實(shí)現(xiàn)導(dǎo)出操作呢?
FineReport導(dǎo)出操作的JS接口為:
導(dǎo)出PDF:exportReportToPDF()
導(dǎo)出[Excel](分頁):exportReportToExcel('page')
導(dǎo)出[Excel](原樣):exportReportToExcel('simple')
導(dǎo)出[Excel](分頁分sheet):exportReportToExcel('sheet')
導(dǎo)出[Excel](分頁導(dǎo)出xls格式):exportReportToExcel('page_isExcel2003')
導(dǎo)出[Excel](原樣導(dǎo)出xls格式):exportReportToExcel('page_isExcel2003')
導(dǎo)出[Excel](分頁分sheet導(dǎo)出xls格式):exportReportToExcel('page_isExcel2003')
導(dǎo)出[圖片]:exportReportToImage('gif')【括號里面可以更換參數(shù),比如說png,jpg等等圖片類型】
導(dǎo)出[word]:exportReportToWord()
故,各個(gè)按鈕的點(diǎn)擊事件應(yīng)用調(diào)用上述的JS接口來實(shí)現(xiàn)其對應(yīng)的導(dǎo)出格式,比如說導(dǎo)出PDF,那么其按鈕的onclick時(shí)間為:
onclick="document.getElementById('reportFrame').contentWindow.contentPane.exportReportToPDF()"
docment.getElementById('reportFrame')是獲取到iframe框架,然后通過contentWindow得到報(bào)表窗口,并拿到contentPane這個(gè)報(bào)表容器,最后就可以從容器中調(diào)用各種導(dǎo)出接口的方法了。
其他的幾個(gè)按鈕的導(dǎo)出事件這里就不一一講解了。
完整代碼
根據(jù)上述同樣的方法為其他幾個(gè)按鈕添加導(dǎo)出事件,完整代碼如下:
<html>
<head>
<title>FineReport自定義導(dǎo)出</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<fieldset>
<div id="toolbar">
<button type="button" onclick="document.getElementById('reportFrame').contentWindow.contentPane.exportReportToPDF()">導(dǎo)出[PDF]</button>
<button type="button" onclick="document.getElementById('reportFrame').contentWindow.contentPane.exportReportToExcel('page')">導(dǎo)出[Excel](分頁)</button>
<button type="button" onclick="document.getElementById('reportFrame').contentWindow.contentPane.exportReportToExcel('simple')">導(dǎo)出[Excel](原樣)</button>
<button type="button" onclick="document.getElementById('reportFrame').contentWindow.contentPane.exportReportToExcel('sheet')">導(dǎo)出[Excel](分頁分sheet)</button>
<button type="button" onclick="document.getElementById('reportFrame').contentWindow.contentPane.exportReportToExcel('page_isExcel2003')">導(dǎo)出[Excel](分頁導(dǎo)出xls格式)</button>
<button type="button" onclick="document.getElementById('reportFrame').contentWindow.contentPane.exportReportToExcel('simple_isExcel2003')">導(dǎo)出[Excel](原樣導(dǎo)出xls格式)</button>
<button type="button" onclick="document.getElementById('reportFrame').contentWindow.contentPane.exportReportToExcel('sheet_isExcel2003')">導(dǎo)出[Excel](分頁分sheet導(dǎo)出xls格式)</button>
<button type="button" onclick="document.getElementById('reportFrame').contentWindow.contentPane.exportReportToImage('png')">導(dǎo)出[圖片]</button>
<button type="button" onclick="document.getElementById('reportFrame').contentWindow.contentPane.exportReportToWord()">導(dǎo)出[Word]</button>
</div>
</fieldset>
<iframe id="reportFrame" width="100%" height="100%" src='/WebReport/ReportServer?reportlet=doc/Primary/DetailReport/Details.cpt' ></iframe>
</body>
</html>
效果查看
點(diǎn)擊不同的按鈕,即可看到其導(dǎo)出的結(jié)果:
