之前我有做過參數查詢的功能,是用finereport實現的,不需要寫這麽多代碼~~||,妳可以試試,主要過程如下:
1.功能描述
參數聯動,就是指後面壹個參數下拉框的值會根據前壹個參數的值的改變而改變。如下圖中,參數城市跟隨前壹參數省份的值而變動,而參數省份又跟隨地區的值而變動。
2.實現思路
通過定義兩個或以上的下拉選項編輯器,設置下拉選項的值是通過數據查詢獲取的,而在定義數據集時通過增加where過濾條件來限制數據。
3.示例
3.1打開模板
打開模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\ParaNull\ParaNull1.cpt。
3.2報表參數設置
在原有參數的基礎上,增加壹個參數名為city的參數。
3.3參數界面設置
將參數界面設置為如下樣式:
3.4?參數聯動設置
數據集設置
增加數據集動態SQL1,SQL語句為:SELECT?貨主省份?FROM?訂單?where?貨主地區='${area}',即通過where條件限定此數據集取出的數據是通過area參數獲取的。
再增加數據集動態SQL2,SQL語句為:SELECT?貨主城市?FROM?訂單?where?貨主地區='${area}'?and?貨主省份='${province}',多個條件之間用and連接,有多個參數聯動時需要將前面所有的參數都作為過濾條件。
控件數據設置
設置參數area的控件類型為下拉框,數據字典為數據庫表,數據庫為FRDemo,數據表為訂單,實際值與顯示值的列名為貨主地區。
設置參數province的控件類型為下拉框,數據字典為數據查詢,數據集為動態SQL1,實際值與顯示值的列名為貨主省份。
設置參數city的控件類型為下拉框,數據字典為數據庫表,數據集為動態SQL2,實際值與顯示值的列名為貨主城市。