咱們常常要打印報表,也遇到打印上的麻煩,好比有時候咱們不想嚴格按照報表上面的樣式,根據實際應用可能有別的樣式更適合,這時候怎麼辦呢,其實報表軟件是能夠設置,今天我就帶你們來了解一下!javascript
1. 問題描述java
對於填報網格式報表,每行前面有個複選框,但願實現點擊頁面中設置的打印按鈕但願將選中的複選框中的值按照必定的樣式打印,如分欄、頁面固定顯示幾行等格式。數組
2. 實現思路工具
能夠定義另一個有固定格式的模板,此模板的數據是根據填報網格式報表中選中的值進行過濾,而在填報網格式報表中則須要在按鈕的點擊事件中定義js,js首先要獲取選中行的數據,而後調用FineReport(實例中所用報表開發工具爲FineReport)內置的打印方法,將選中的值以參數的方式加入到打印方法的URL中傳到被打印的模板中。開發工具
3. 示例spa
預覽模板效果以下所示設計
選中一些數據讓其按照以以下圖所示的樣式進行打印,下面咱們來看下具體的實現步驟。code
3.1 新建須要打印格式模板orm
· 定義數據集事件
因爲此模板要根據選中的值進行打印,所以要在此模板中定義參數,在此咱們將參數定義成數據集參數。
新建工做簿,增長數據集ds1,SQL語句爲:SELECT * FROM 訂單 where 訂單ID in (${ID})。
· 表樣設計
將表樣設計成要打印的效果,在此咱們將模板設置成以下樣式:
將B2單元格的左父格設置成無,並將其他單元格的左父格設置爲B2。
將B3和D3設置形態。
一樣也能夠對模板進行分欄。
· 保存模板
保存模板,具體的設置可參考模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\FormFAQ\PrintCol.cpt
3.2 修改預覽模板
· 打開模板
打開模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\LineForm\LineForm7.cpt。
· 修改模板
此模板,咱們只要修改按鈕的名稱和按鈕的js便可,所以咱們將按鈕名稱修改爲「打印」,並將js修改爲以下代碼:
var $span = $('.fr-checkbox-checkon'); //獲取選中的複選框 var darray = []; var $tds = $("td").has($span); //得到選中複選框的單元格 for (var i = 0, len = $tds.length; i < len; i ++) { //遍歷選中的單元格 var id = $($tds[i]).attr("id"); //給選中的單元格增長id屬性 var idn = id.replace("A","B"); //將複選框所在的A列換成客戶編號所在的B列 var vv=document.getElementById(idn).innerHTML; //獲取選中單元格所在B列的數據 darray.push(vv); } FR.doURLPDFPrint("${sevletURL}ReportServer?reportlet=/doc/Form/FormFAQ/PrintCol.cpt&ID="+darray); //調用打印方法,URL爲以前作好的模板路徑
注:若獲取的vv值爲字符串,要將其放入數組中則須要修改爲darray.push("'"+vv+"'")。
· 保存模板
保存模板,具體的設置可參考模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\FormFAQ\PrintOtherStyle.cpt。
3.3效果查看
填報預覽PrintOtherStyle.cpt,選中幾行數據後,點擊打印按鈕,就會按照上圖的效果進行打印。