2016-04-21 55 views
1

我開發了一個JasperReports報告使用csv數據源,併成功發佈在JasperReports服務器如何根據輸入控件切換CSV數據源?

問題:現在,我想根據參數(abc)切換csv數據源。

  • 當由用戶選擇的參數值「csv1」 ----> sample.jrxml應該連接到
  • 當由用戶選擇的參數值「CSV2」「csv1的路徑」 --- - > sample.jrxml應該連接到

注「CSV2的路徑」:我不使用sample.jrxml文件表

誰能告訴我如何實現這一目標?

回答

1

如果您使用的是CSV文件作爲來源爲你的數據,你可以做這樣的事情在您的JRXML:

<parameter name="switchParam" class="java.lang.String" isForPrompting="false"> 
    <defaultValueExpression><![CDATA["abc"]]></defaultValueExpression> 
</parameter> 
<parameter name="net.sf.jasperreports.csv.source" class="java.lang.String" isForPrompting="false"> 
    <defaultValueExpression><![CDATA[$P{switchParam} == "abc" ? "path/to/CsvDataSource1" : "path/to/CsvDataSource2"]]></defaultValueExpression> 
</parameter> 

的CSV源可以在無論是作爲一個屬性或參數傳遞,在你的情況下,參數提供更多的靈活性。

+0

謝謝你的建議。我也嘗試過,但是當我在jasper服務器上發佈報告時,導致錯誤「報告爲空」。我認爲我們需要在「默認數據適配器」 –

+0

中傳遞一些信息,如果您可以附加jrxml的完整源代碼,這將非常有幫助。 –

+0

請編輯您的問題,併發布一些示例文件(jrxml,dataAdapter,帶有示例數據的csv),以便我可以更好地理解您在做什麼。另外,請提及您的工具的版本(包括ce或pro):JasperReports,Jaspersoft Studio,JasperReports Server。 – Narcis