JavaScript概述
JavaScript是種腳本語言,它可以用來制作與網(wǎng)絡(luò)無關(guān)的,與用戶交互作用的復(fù)雜軟件。它是一種基于對象(Object Based)和事件驅(qū)動(Event Driver)的編程語言。 JavaScript是動態(tài)的,它可以直接對用戶或客戶輸入做出響應(yīng),無須經(jīng)過Web服務(wù)程序。它對用戶的反映響應(yīng),是采用以事件驅(qū)動的方式進行的。所謂事件驅(qū)動,就是指在主頁(Home Page)中執(zhí)行了某種操作所產(chǎn)生的動作,就稱為“事件”(Event)。比如按下鼠標(biāo)、移動窗口、選擇菜單等都可以視為事件。當(dāng)事件發(fā)生后,可能會引起相應(yīng)的事件響應(yīng)。
JavaScript是依賴于瀏覽器本身,與操作環(huán)境無關(guān),只要能運行瀏覽器的計算機,并支持JavaScript的瀏覽器就可正確執(zhí)行。即JavaScript源代碼在發(fā)往客戶端執(zhí)行之前不需經(jīng)過編譯,而是將文本格式的字符代碼發(fā)送給客戶編由瀏覽器直接解釋執(zhí)行。
本章介紹了FineReport報表軟件內(nèi)置的JavaScript函數(shù)及其用法。
觸發(fā)事件
控件的事件
在控件設(shè)置的事件編輯中,FineReport報表軟件事件編輯共有七種觸發(fā)事件:編輯前、編輯后、編輯結(jié)束、點擊、初始化后、狀態(tài)改變及回調(diào)。
其中編輯前、編輯結(jié)束只在表單填報時起作用。
編輯后、點擊、初始化后、狀態(tài)改變等在表單填報及參數(shù)界面上都可以使用。
1. 編輯前
該事件是在填報時進入編輯狀態(tài)后被觸發(fā)
簡單例子
1.1 打開FineReport報表工具,新建一張空白報表,然后設(shè)計成如下格式
1.2 設(shè)置報表填報屬性,在此不做贅述,具體設(shè)置方法可參考填報專題相關(guān)章節(jié)
1.3 定義單元格填報屬性
將B2單元格控件類型設(shè)置為文本,并在B2控件中添加編輯前事件,在function fun()函數(shù)中添加一段JS代碼: alert("事件編輯前觸發(fā)");
如下圖所示

1.4 保存并填報
點擊設(shè)計器中的填報預(yù)覽,進入填報的編輯狀態(tài),效果如下

此時當(dāng)光標(biāo)移至姓名單元格進行編輯時,編輯前事件被觸發(fā)。
2. 編輯后
該事件在表單填報及參數(shù)界面上都可以被觸發(fā)。
對于文本、數(shù)字控件,當(dāng)輸入任何字母或文字標(biāo)點后觸發(fā);對于下拉框,復(fù)選框等控件,當(dāng)選擇下拉選項后被觸發(fā),具體設(shè)置方法類似于編輯前事件,在這不再贅述。
3. 編輯結(jié)束
該事件只有在填報確認單元格輸入內(nèi)容如鍵盤輸入回車后才能被觸發(fā)
具體設(shè)置方法類似于編輯前事件,在這不再贅述。
4. 點擊
該事件是在點擊按鈕,或點擊下拉框、下拉樹、下拉復(fù)選框等之后被觸發(fā)
簡單例子
4.1 新建報表
4.2 使用默認的參數(shù)界面,如圖

4.3 控件設(shè)置
右擊按鈕控件,選擇控件設(shè)置,打開控件設(shè)置面板,添加點擊事件,在function fun()函數(shù)中添加一段JS代碼: alert("點擊我就觸發(fā)該事件啦!");
如下圖所示

4.4 保存并預(yù)覽
點擊設(shè)計器中的分頁預(yù)覽,點擊查詢按鈕,此時點擊事件被觸發(fā),如下圖

5. 初始化后
該事件是按鈕控件所特有,在點擊分頁預(yù)覽或填報預(yù)覽后初始化界面時被觸發(fā)
簡單例子
5.1 新建報表
5.2 使用默認的參數(shù)界面,如圖

5.3 控件設(shè)置
右擊按鈕控件,選擇控件設(shè)置,打開控件設(shè)置面板,添加初始化后事件,在function fun()函數(shù)中添加一段JS代碼: alert("初始化后就觸發(fā)該事件啦!");
如下圖所示

5.4 保存并預(yù)覽
點擊設(shè)計器中的分頁預(yù)覽,就可以看見如下圖所示效果

6. 狀態(tài)改變
該事件為單選按鈕、復(fù)選框組控件所特有,在其狀態(tài)改變時被觸發(fā)
簡單例子
6.1 定義報表參數(shù)p1,并設(shè)置其默認值為男
6.2 在參數(shù)界面上,定義參數(shù)p1的控件屬性,如下圖

6.3 添加事件
右擊p1的控件,選擇控件設(shè)置,打開控件設(shè)置面板,添加狀態(tài)改變事件,在function fun()函數(shù)中添加一段JS代碼: alert("單選按鈕的狀態(tài)改變啦!");
如下圖所示

6.4 保存并預(yù)覽
點擊設(shè)計器中的分頁預(yù)覽,單選按鈕默認選中“男”,當(dāng)點擊“女”時就會觸發(fā)狀態(tài)改變事件,如下圖

7. 回調(diào)
該事件為文件控件所特有,是在上傳完文件之后觸發(fā)該事件
簡單例子
7.1 新建報表,定義文件控件,如下圖:

7.2 添加事件
點擊文件控件,打開控件設(shè)置面板,添加回調(diào)事件,在function fun()函數(shù)中添加一段JS代碼: alert("回調(diào)事件觸發(fā)啦!");
如下圖所示

7.3 保存并預(yù)覽
點擊設(shè)計器中的填報預(yù)覽,上傳文件結(jié)束后,觸發(fā)回調(diào)事件,如下圖
