Posted on 2015-08-13 09:44
FineReport——報表技術領跑者 閱讀(94)
評論(0) 編輯 收藏 所屬分類:
Java報表技術知識
1、應用場景
在用報表工具FineReport設計報表時,使用參數控件時,有時我們希望部分參數控件在沒滿足條件時不顯示,滿足條件后再顯示,如下圖效果:只有前面的下拉框選擇了內容之后,后一層下拉框控件才顯示出來:

2、解決方案
首先將被控制的控件初始化為不可見或者不可用,然后在條件控件上增加編輯結束事件,通過js腳本設置被控制控件可見或可用,對應的js方法如下:
setEnable(boolean):設置是否可用,true為可用,false為不可用;
setVisible(boolean):設置是否可見,true為可見,false為不可見;
3、示例
打開模板%FR_HOME%\WebReport\WEB-INF\reportlets\doc\parameter\\MultiValue\MutiValue.cpt
我們用這個模板中的area作為條件控件,province作為被控控件來說明設置過程。
3.1初始化被控控件為不可見
點擊province控件,選擇屬性表>基本屬性將可見勾選掉,如下圖:

3.2條件控件的事件設置
給area控件添加編輯后事件,調用JS方法將province控件設定為可見,具體的代碼如下:
選擇參數area的下拉框控件,選擇屬性表的事件面板,增加一個編輯后事件,如下圖:

其中代碼為:
1. var province=this.options.form.getWidgetByName("province"); var area=this.options.form.getWidgetByName("area");
2. var thislen = this.getValue(area).length;
3. if(thislen) province.setVisible(true);
4. else alert("請選擇地區(qū)");