2016-04-21 51 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