我有条件SQL查询,如果满足某些条件,控制器会选择这些查询。如果我按"阅读字段"我只获得其中一个查询的字段。
查询是正确的,如果直接粘贴到 queryString 中,我会为每个查询获取正确的字段。
查询1:
<parameter name="SQLTag" class="java.lang.String" isForPrompting="false" evaluationTime="Late">
<defaultValueExpression><![CDATA["SELECT * FROM REPORT_VER WHERE TAG BETWEEN '" + new SimpleDateFormat("dd.MM.yyyy").format($P{Von}) + "' AND '" + new SimpleDateFormat("dd.MM.yyyy").format($P{Bis}) + "'"]]></defaultValueExpression>
</parameter>
查询2(由于测试目的,日期中包含常量):
<parameter name="SQLMonat" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA["select to_char(tag,'MON') as Monat, sum(Hauptnutzungszeit) as MonatsNutzung from report_ver where Tag between '10.05.2015' and '20.05.2015' group by to_char(tag,'MON')"]]></defaultValueExpression>
</parameter>
控制器:
<parameter name="controller" class="java.lang.String" isForPrompting="false" evaluationTime="Late">
<parameterDescription><![CDATA[]]></parameterDescription>
<defaultValueExpression><![CDATA["täglich".equals($P{Ansicht})? $P{SQLTag} : (("monatlich".equals($P{Ansicht}) ? $P{SQLMonat} : $P{SQLTag}))]]></defaultValueExpression>
</parameter>
的queryString :
<queryString>
<![CDATA[ $P!{controller} ]]>
</queryString>
只有一个查询,一切正常,所以我不认为连接器有问题。我需要手动添加字段吗?或者我如何获得所有领域?
如果我在没有所有字段的情况下运行报告,我显然会收到某些字段丢失的错误消息。