2012-07-13 52 views
3

我正在開發一個帶有JasperReports(v.4.0.6)和DynamicJasperReports(v.4.0.1)的Java項目。我使用最新的Eclipse的iReport插件生成了自定義的.jrxml。(動態Jasper報表)從定製的.jrxml文件導入參數

在我的.jrxml報告中,我定義了兩個參數,這些參數將由Java程序根據用戶給定的一些輸入來填充。

<parameter name="ReportTitle" class="java.lang.String"/> 
<parameter name="DataFile" class="java.lang.String"/> 

然後,因爲這tutorial狀態,因爲我要保持幾個預定義的參數,我調用setTemplate()從我的代碼的方法。

String table_template = "report_templates/TableTemplate.jrxml"; 
Map<String, String> params; 
... 
DynamicReportBuilder drb = new DynamicReportBuilder(); 
drb.setTemplateFile(table_template, true, true, true, true); 
DynamicReport dr = drb.build(); 

我傳遞參數給模板執行以下操作:

params.put("ReportTitle", "CustomTitle"); 
params.put("DataFile", "CustomSubtitle"); 

然而,當我genereate日報道,這兩個領域出現空白,彷彿DJ庫沒有保存的地方在其中預先插入值。我沒有得到任何其他錯誤或例外。

我試過將Jasper庫降級到Al版本,但無濟於事。

我會很感激,如果有人可以給我一些見解我做錯了什麼。

在此先感謝。

回答

2

有在JRXML已經定義了一個paremeter只意味着在自定義表達式,你可以得到它的價值

params.get("paramName") 

沒有事先登記(drb.addParameter(...)

您可以隨時創建自定義表達式列,並在自定義表達式代碼中放置一個斷點,並在運行時檢查參數映射的內容!

如果您使用DJ以外的參數,例如頁眉或頁腳文本,應該沒有問題

+1

感謝您的回答!問題解決了。我從頭開始構建模板,這一切都奏效了!這似乎與iReport的版本不兼容。 – lyreil 2012-07-20 08:05:36

相關問題