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

1.4 保存并填報
點擊設計器中的填報預覽,進入填報的編輯狀態,效果如下

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

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

4.4 保存并預覽
點擊設計器中的分頁預覽,點擊查詢按鈕,此時點擊事件被觸發,如下圖

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

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

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

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

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

6.4 保存并預覽
點擊設計器中的分頁預覽,單選按鈕默認選中“男”,當點擊“女”時就會觸發狀態改變事件,如下圖

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

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

7.3 保存并預覽
點擊設計器中的填報預覽,上傳文件結束后,觸發回調事件,如下圖
