无法使用参数

时间:2016-08-09 05:37:12

标签: parameters jasper-reports

我有一个问题:如何设置参数i JasperReport的报告的默认值?我试过这样的事:

<parameter name="where" class="java.lang.String" isForPrompting="false">
    <defaultValueExpression><![CDATA[1 = 1]]></defaultValueExpression>
</parameter>

并将此参数包含在我的queryString:

<queryString>
    <![CDATA[SELECT *
      FROM "TABLE"
      where $P{where}]]>
</queryString>

但我有一个错误。我也尝试在java中设置这个值,例如1.equals(1),但它仍然不起作用。我必须在此参数中设置一个始终为true的条件。怎么做?

2 个答案:

答案 0 :(得分:0)

它不起作用,你尝试构建动态sql。 Jasper不支持动态sql。

我的解决方案:

<parameter name="where" class="java.lang.String" isForPrompting="false">
    <defaultValueExpression><![CDATA[1]]></defaultValueExpression>
</parameter>

和查询:

<queryString>
<![CDATA[SELECT *
  FROM "TABLE"
  where ('1' = $P{where} or any_column = $P{where})]]>

答案 1 :(得分:0)

我已经解决了这个问题。解决方案很简单。我已经做好了一切,<![CDATA[1 = 1]]>应该被<![CDATA["1 = 1"]]>取代。第二步是广告&#34;!&#34;在这样的$ P声明之后:where $P!{where}。 现在一切正常。我希望这能帮助别人。