當前為10.0版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

動态打印

1. 描述

在進行報表查看時,有時會發現一兩條重要或者錯誤信息,需要将其進行打印出來備份一下,這時就需要動态實現打印效果,勾選需打印的信息,将其打印出來。

注:在 JAR 包版本爲 2018-04-09 及以上版本時,請使用新的打印方式,詳情參照:[新]打印

2. 思路

通過勾選複選框控件,獲取到需要打印的值,點擊自定義打印按鈕,把值以參數的形式傳到另一個模板,并打印出來,以達到只打印出客戶所勾選記錄的效果。

3. 實現步驟

3.1 父模板

1)數據準備

新建模板,新建數據查詢:SQL 爲SELECT * FROM 雇員

2)報表主體設計

在 A3 單元格中使用複選框控件,用來勾選需要打印的信息,如下圖:

222

獲取複選框的值

爲複選框控件添加初始化事件,将勾選項的信息放到數組中保存,代碼如下:

if(!FR.checkBoxes){
FR.checkBoxes=new Array();
}
var len=FR.checkBoxes.length;
FR.checkBoxes[len]=this;

工具欄添加自定義打印按鈕

點擊模板>模板 Web 屬性>填報頁面設置,選擇爲該模板單獨設置,添加一個自定義打印按鈕至工具欄中,并把自定義打印按鈕清空,詳細請參照 填報頁面設置

222

自定義 JavaScript,代碼如下:

var joinData=function(){
var datas=[];
 for(var i=0;i<FR.checkBoxes.length;i++){
var checkBox=FR.checkBoxes[i];
if(checkBox.getValue()===true){
var colRow=FR.cellStr2ColumnRow(checkBox.options.location);
colRow.col++;
var location=FR.columnRow2CellStr(colRow);
var value=_g().getCellValue(location,null);
datas[datas.length]=value;
}
}
return datas.join(",");
}
var data=joinData();
var url="http://localhost:8075/webroot/decision/view/report?viewlet=doc%2FAdvanced%2FPrintReport%2F%5B52a8%5D%5B6001%5D%5B6253%5D%5B5370%5D%5B5b50%5D%5B6a21%5D%5B677f%5D.cpt"+"&ids="+data;
window.onbeforeunload=null;
FR.doURLPDFPrint(url);
顯示代碼

3)保存

已完成模板請參見%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Advanced\PrintReport\動态打印主模板.cpt

3.2 子模板

1)數據準備

新建模板,新建數據查詢 ds1,SQL 爲SELECT * FROM 雇員 where 雇員id in (${ids}),該參數是爲了接收父模板傳遞過來的雇員 ID。

2)報表主體設計

222

3)保存

已完成模板請參見%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Advanced\PrintReport\動态打印子模板.cpt

注:父模板與子模板的樣式應當保持一緻,因爲點擊打印按鈕之後,将父模板中的數據以參數的形式傳遞給子模板,并打印子模板。

3.3 預覽與打印

打開父模板,點擊填報預覽,選中需要打印的數據,點擊工具欄上的打印按鈕,即可将選中信息打印出來了,如下圖:

222

注:由於父模板中填報控件的存在,必須以填報預覽的方式查看。


附件列表


主題: 原簡體文檔
  • 有幫助
  • 沒幫助
  • 只是瀏覽

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

9s後關閉

反饋已提交

網絡繁忙