天天看點

FineReport中如何用JavaScript解決控件值重新整理不及時

我們經常利用按鈕進行一些頁面值的處理工作,但是預設的邏輯造成,每次新填報的值,需要點選下空白區域或是執行某個其他操作才可以被正确讀取,那麼我們如何處理呢?

例:當我們用正常取值的時候,雖然B3單元格錄入了值,但是在光标不離開B3的前提下,用JS隻擷取到了控制而不是實際的值“2”。

想獲得B3的值,需要在空白處點選下滑鼠,讓文本框的左上角的紅三角出現才可以。

優化過後則可以将光标強制跳轉到A2單元格,使其獲得光标,進而強制B3單元格重新整理值。

FineReport中如何用JavaScript解決控件值重新整理不及時

既然任意點選空白處就可以,那麼我們就用JS來強制跳轉光标實作同樣的功能。

模闆制作

模闆樣式設計如下,A3和B3單元格添加文本控件,C3單元格為A3和B3相加值,D3和E3單元格添加按鈕控件:

FineReport中如何用JavaScript解決控件值重新整理不及時

“直接相加”按鈕的JS

D3控件名稱為直接相加,添加一個點選事件

FineReport中如何用JavaScript解決控件值重新整理不及時
var B3 = contentPane.curLGP.getCellValue("B3");
var A3 = contentPane.curLGP.getCellValue("A3");
alert("a3的值:"+A3);
alert("b3的值:"+B3);      

“優化後”按鈕的JS

E3控件名稱為優化後,添加一個點選事件

FineReport中如何用JavaScript解決控件值重新整理不及時
contentPane.curLGP.selectTDCell("A2");
 
var B3 = contentPane.curLGP.getCellValue("B3");
var A3 = contentPane.curLGP.getCellValue("A3");
alert("a3的值:"+A3);
alert("b3的值:"+B3);      

contentPane.curLGP.selectTDCell(“A2”):表示的是,将光标強制跳轉到A2單元格,也就相當于用滑鼠點選了一下A2單元格,使其獲得光标,進而強制B3單元格重新整理值。

常見場景

使用者通過文本框填報了值,而需要對這個值進行取出判斷的時候,經常會取空值,隻有使用者點選了空白區域,才可以正常取值。

比如:使用者填寫了手機号碼,就可以跳轉到領取獎品的頁面,若手機号碼是最後一個填報欄,填寫後,使用者直接送出,系統則會認為,手機号碼一欄為空。

繼續閱讀