Java軟件報(bào)表軟件技術(shù)博客

          java報(bào)表軟件技術(shù)匯總 java報(bào)表軟件制作 報(bào)表軟件新聞
          posts - 355, comments - 100, trackbacks - 0, articles - 3
             :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

          我們經(jīng)常要打印報(bào)表,也遇到打印上的麻煩,比如有時(shí)候我們不想嚴(yán)格按照報(bào)表上面的樣式,根據(jù)實(shí)際應(yīng)用可能有別的樣式更適合,這時(shí)候怎么辦呢,其實(shí)報(bào)表軟件是可以設(shè)置,今天我就帶大家來了解一下!

          1. 問題描述

          對于填報(bào)網(wǎng)格式報(bào)表,每行前面有個(gè)復(fù)選框,希望實(shí)現(xiàn)點(diǎn)擊頁面中設(shè)置的打印按鈕希望將選中的復(fù)選框中的值按照一定的樣式打印,如分欄、頁面固定顯示幾行等格式。

          2. 實(shí)現(xiàn)思路

          可以定義另外一個(gè)有固定格式的模板,此模板的數(shù)據(jù)是根據(jù)填報(bào)網(wǎng)格式報(bào)表中選中的值進(jìn)行過濾,而在填報(bào)網(wǎng)格式報(bào)表中則需要在按鈕的點(diǎn)擊事件中定義js,js首先要獲取選中行的數(shù)據(jù),然后調(diào)用FineReport(實(shí)例中所用報(bào)表開發(fā)工具為FineReport)內(nèi)置的打印方法,將選中的值以參數(shù)的方式加入到打印方法的URL中傳到被打印的模板中。

          3. 示例

          預(yù)覽模板效果如下所示

          選中一些數(shù)據(jù)讓其按照以如下圖所示的樣式進(jìn)行打印,下面我們來看下具體的實(shí)現(xiàn)步驟。

          3.1 新建需要打印格式模板

          ·        定義數(shù)據(jù)集

          由于此模板要根據(jù)選中的值進(jìn)行打印,因此要在此模板中定義參數(shù),在此我們將參數(shù)定義成數(shù)據(jù)集參數(shù)。

          新建工作簿,增加數(shù)據(jù)集ds1,SQL語句為:SELECT * FROM 訂單 where 訂單ID in (${ID})

          ·        表樣設(shè)計(jì)

          將表樣設(shè)計(jì)成要打印的效果,在此我們將模板設(shè)置成如下樣式:

          將B2單元格的左父格設(shè)置成無,并將其余單元格的左父格設(shè)置為B2。

          將B3和D3設(shè)置形態(tài)

          同樣也可以對模板進(jìn)行分欄

          ·        保存模板

          保存模板,具體的設(shè)置可參考模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\FormFAQ\PrintCol.cpt

          3.2 修改預(yù)覽模板

          ·        打開模板

          打開模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\LineForm\LineForm7.cpt

          ·        修改模板

          此模板,我們只要修改按鈕的名稱和按鈕的js即可,因此我們將按鈕名稱修改成“打印”,并將js修改成如下代碼:

          var $span = $('.fr-checkbox-checkon');  //獲取選中的復(fù)選框
          var darray = [];
          var $tds = $("td").has($span); //獲得選中復(fù)選框的單元格
          for (var i = 0, len = $tds.length; i < len; i ++) {    //遍歷選中的單元格
             var id = $($tds[i]).attr("id");  //給選中的單元格增加id屬性
          var idn = id.replace("A","B"); //將復(fù)選框所在的A列換成客戶編號所在的B列
          var vv=document.getElementById(idn).innerHTML;    //獲取選中單元格所在B列的數(shù)據(jù)
            darray.push(vv);  
          }
          FR.doURLPDFPrint("${sevletURL}ReportServer?reportlet=/doc/Form/FormFAQ/PrintCol.cpt&ID="+darray);  //調(diào)用打印方法,URL為之前做好的模板路徑


          注:若獲取的vv值為字符串,要將其放入數(shù)組中則需要修改成darray.push("'"+vv+"'")。

          ·        保存模板

          保存模板,具體的設(shè)置可參考模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\FormFAQ\PrintOtherStyle.cpt

          3.3效果查看

          填報(bào)預(yù)覽PrintOtherStyle.cpt,選中幾行數(shù)據(jù)后,點(diǎn)擊打印按鈕,就會(huì)按照上圖的效果進(jìn)行打印。




          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 临沂市| 凤庆县| 突泉县| 政和县| 鄂州市| 甘南县| 库尔勒市| 汶川县| 政和县| 芜湖市| 泸西县| 涞源县| 民权县| 广河县| 商丘市| 卢氏县| 河津市| 泰宁县| 兴业县| 驻马店市| 广昌县| 晋州市| 江华| 金川县| 渝北区| 武陟县| 崇阳县| 肥乡县| 淮滨县| 岢岚县| 仙桃市| 柯坪县| 北碚区| 西青区| 丁青县| 岫岩| 海伦市| 淅川县| 方城县| 射洪县| 凤山县|