FineReport

最強大的動態報表與BI商業智慧工具!

Java報表軟體FineReport實現動態顯示參數控制項

由於業務的需要,很多情況下需要在web報表中實現這樣的效果:當滿足某個條件時,某些查詢條件才顯示出來,如下圖所示,選擇年報,顯示年的下拉框控制項;選擇月報,顯示年和月的下拉框控制項;選擇日報,顯示日期控制項:
年報日期控制項
月報日期控制項
日報日期控制項
下面便來看一下在Web報表軟體FineReport中如何實現上述效果
//通過報表控制項的visible()、invisible()屬性控制其可視與不可視
var [Widget] = form.getWidgetByName(“[ParaName]”); //通過控制項名獲取控制項
[Widget].visible(); //設置該控制項可見
[Widget].invisible(); //設置該控制項不可見
具體步驟如下:
1. 打開報表模板
打開模板:
%FR_HOME%WebReportWEB-INFreportletsdocParameterDynamicSQLDynamicSQL.cpt
2. 修改報表數據集
將數據集修改為:
SELECT * FROM 訂單 where 1=1 ${if(type==”日報”,”and format(訂購日期,’yyyy-mm-dd’) = ‘” + date + “‘”,if(type==”月報”,”and month(訂購日期) = “+ month + ” and year(訂購日期) = ” + year ,”and year(訂購日期) = ” + year ))}
給參數type設置默認值為日報,參數date設置默認值的類型為字元串型值為2010-01-03。
3. 動態報表表樣修改
將表樣修改成如下樣式:
報表表樣
給A3設置形態,自定義數據,實際值與對應的顯示值分別為:日報,日期;月報,年月;年報,年份。
在B3單元格中增加如下公式:=if(type==”日報”,$date,if(type==”月報”,$year+”.”+$month,$year))
4. 報表參數界面設置
將參數界面設置成如下樣式:
報表參數界面
設置參數type的控制項類型為下拉框,自定義值實際值與顯示值都為日報,月報,年報。
設置參數year的控制項類型為下拉框,自定義值顯示值與實際值都為2010,2011。
設置參數month的控制項類型也為下拉框,其值為公式,在實際值出填寫公式=range(1,6)即可。
設置參數date的控制項類型為日期,返回值類型為默認的字元串型。
5. JS事件
給參數type的下拉框控制項增加編輯後事件,具體的JS代碼如下:
報表控制項js代碼
註:此段代碼判斷type參數的值,若是日報,則只顯示date控制項,若是月報,則顯示year和month控制項,若是年報,則只顯示year控制項。
6. 保存報表模板
點擊分頁預覽,效果如上圖。

  • 聯繫我們

  • 電話:0933-790886
  • 邮箱:brian.wang@fanruan.com
  • 地址:300 新竹市學府路40號 (交大育成中心 R302)
  • 臉書粉絲團
Copyright©2017 Fanruan Software Co.,Ltd. All Rights Reserved. 帆軟軟體有限公司 | 蘇ICP備14031611號-8

返回頂部