FineReport——獲取控件值和單元格值

 設置單元格的值(填報預覽):javascript

//contentPane.setCellValue(1,0,"abc");//參數面板給單元格賦實際值,便可填報
contentPane.curLGP.setCellValue(1, 0, "abc") //報表中控件給報表中單元格賦值

獲取單元格的值(填報預覽,參數面板和報表控件均可以這樣寫):html

//contentPane.getCellValue(1,0);
contentPane.curLGP.getCellValue(1, 0)
var text=contentPane.curLGP.getCellValue("D2");//獲取文本框控件所在單元格的值 
contentPane.getCellValue(sheet號,列號,行號);  //sheet號行號列號是從0開始
contentPane.curLGP.getCellValue(列號,行號);  
contentPane.curLGP.getCellValue(單元格);   

當前控件值:java

this.getValue();

復模版和次模板:web

this.options.form/window.parent.form

參數界面獲取參數界面控件:sql

var Widget = this.options.form.getWidgetByName("WidgetName"); //控件名

參數界面獲取報表中控件:session

var value= contentPane.getWidgetByName("textbox").getValue(); //textbox爲在報表中定義控件時命名

報表中控件獲取參數面板中控件:工具

var Widget = contentPane.parameterEl.getWidgetByName("id");
在這種狀況下,就可使用_g().parameterCommit();。

報表中控件獲取報表中控件:測試

var Widget=contentPane.getWidgetByName("tab");

在web頁面中獲取FineReport報表裏面的參數界面:this

document.getElementById('reportFrame').contentWindow.contentPane.parameterEl.getWidgetByName('widgetname')

工具欄按鈕獲取參數面板控件:url

var temp= contentPane.parameterEl.options.form.getWidgetByName("temp").getValue();

填報屬性頁面事件獲取參數面板控件:

contentPane.parameterEl.getWidgetByName("widget").getValue();

控件的經常使用方法:

Widget.setValue()該方法是給控件賦值,可是不建議在填報頁面用該方法給控件賦值,由於這是給控件賦值,並非單元格,在填報的時候若是使用該方法賦值,每次給控件賦值完成以後,將值傳給單元格以前,會被清空,最後單元格的值仍是爲空,因此在填報頁面建議使用setCellValue()給控件賦值。

獲取父模板:

var form = window.parent.form; 

獲取/設置制定參數控件的值:

var pva=form.getWidgetByName("p2").getValue();
//this.options.form.getWidgetByName("p1").getValue();
form.getWidgetByName("p2").setValue(pva);

經過引入finereport.js,就可使用FR這個對象:

<script type="text/javascript" src="/WebReport/ReportServer?op=emb&resource=finereport.js"></script>

 

doURLFlashPrint(printurl,isPopUp) //第一個參數表明路徑,第二個表示是否彈出對話框

獲取當前單元格行列號:

var row =contentPane.curLGP.getTDRow(td);   
var col =contentPane.curLGP.getTDCol(td);  

獲取工具欄的控件:

var toolbar = contentPane.toolbar;

var items = toolbar.options.items;

var customButton=items[2];//JQUERY取咱們的工具欄上的按鈕.items[2]表明的是第三個。

 刷新事件(添加按鈕點擊事件):

location.reload();

自定義提交:

_g('${sessionID}').writeReport();  

自定義校驗提交:

_g('${sessionID}').verifyAndWriteReport();

自定義查詢:

_g().parameterCommit();  

點擊頁面彈出子頁面,按鈕的點擊事件:

FR.showIframeDialog({

url:"ReportServer?reportlet=SMES/NewAdd.cpt&op=write",

title:"title",

width:600,

height:600

})

或者

FR.showDialog("測試", 400, 400, "<div> <iframe  id='reportFrame' style='width:100%;height:350px' src='http://localhost:8075/WebReport/ReportServer?reportlet=SMES/NewEdit.cpt&op=write&PKID=${CopID}'> </iframe></div>", {collapsible:true});

 

子頁面刷新父頁面:

在父頁面作個按鈕,ID爲btnRefresh  點擊事件爲:location.reload();

在子頁面的填報成功事件裏寫:

var top = window.parent;

var reportPane = top.contentPane;

var btn = reportPane.curLGP.write.getWidgetByName("btnRefresh");

btn.fireEvent("click");

 網頁框路徑:

${servletURL}?reportlet=tree2/relation.cpt&op=write 

刷新整個頁面:

location.reload();

刷新當前sheet:

this.refreshAllSheets();

刷新報表而不刷新參數面板:

contentPane.reloadCurLGPPane();

 當前單元格的值:

$$$

爲空不過濾:nofilter表示不過濾,if(len($area)==0,nofilter,$area)表示參數area爲空,就不過濾,若不爲空則以參數值進行過濾。

 獲取當前行號並賦值給F1:

contentPane.on("cellselect", function(td) {  //獲取單元格被選中監聽事件  
  var num =contentPane.curLGP.getTDRow(td)-2;  //獲取當前行號,因爲數據是從第三行開始,所以要減2  
  contentPane.curLGP.setCellValue("F1",null,num);  //給F1單元格賦值  
});

 給下拉框使用公式定義數據集:實際值:sql公式,顯示值:sql公式+"id=$$$"

在公式中使用數據集名稱:

dsname.select(colname,篩選條件1&&篩選條件2&&......) //ds中不能使用參數
相關文章
相關標籤/搜索