對于這種情況,可能的原因是報表工具的參數界面中參數控件的名字與參數名不一致導致,需要核對控件名。該錯誤常常發生在如報表設計過程中,某張模板已經做好,但由于需要修改了參數定義,未對參數界面作相應的修改的時候。
如下以實際的例子演示。
1. 新建報表
2. 定義數據集
新建數據庫查詢ds1并定義數據源參數class,SQL語句為:
SELECT * FROM STSCORE where ClassNo = '${class}'
3. 模板制作
如下制作報表
4. 定義參數界面
使用默認的參數界面,如下圖:
5. 修改參數定義
由于需要,將數據源參數名改為classno,如SELECT * FROM STSCORE where ClassNo = '${classno}'
但未對參數界面進行修正,參數控件名仍為class,如下圖
6. 保存并預覽
保存模板,進行設計器預覽,對classno賦值能正確獲得結果。但點擊設計器分頁預覽,在參數界面中設置參數值時,由于在參數界面中輸入的值是賦給參數控件,而參數控件又根據控件名與參數一一對應起來,此時控件名為class,而參數已變為classno,因此參數不能正確獲得值,查詢結果便出錯了。
文章轉自:http://ajavareport.cn/archives/557
了解Java報表工具就從這里開始