我创建了一个ArrayList变量 $ V {companyList} ,以将该字符串添加到我的参数集中。
<!-- PARAMETER: COMPANY COLLECTION -->
<parameter name="companyId_0" class="java.util.Collection" nestedType="java.lang.String">
<property name="inputControl" value="true" />
<parameterDescription>
<![CDATA[Company ID]]>
</parameterDescription>
<defaultValueExpression>
<![CDATA[java.util.Arrays.asList(new java.lang.String[] {"200","100"})]]>
</defaultValueExpression>
</parameter>
<!--VARIABLE: NULL COMPANY STRING-->
<variable name="nullCompany" class="java.lang.String" calculation="System">
<variableExpression>
<![CDATA["n/a"]]>
</variableExpression>
</variable>
<!--VARIABLE: COMPANY LIST-->
<variable name="companyList" class="java.util.ArrayList" calculation="System">
<variableExpression>
<![CDATA[$P{companyId_0}.add( $V{nullCompany} )]]>
</variableExpression>
<initialValueExpression>
<![CDATA[new ArrayList()]]>
</initialValueExpression>
</variable>
产生的错误:
由以下原因引起:java.lang.UnsupportedOperationException java.util.AbstractList.add(AbstractList.java:148)在 java.util.AbstractList.add(AbstractList.java:108)
语法尝试2:
$ P {companyId_0} .add(new String []“ n / a”)
错误消息2: 变量必须提供维表达式或数组 初始化程序
语法尝试3:
$ P {companyId_0} .add(新字符串[] $ V {nullCompany})
错误消息3: 作业的左侧必须是变量。
答案 0 :(得分:0)
我最终在数据过滤中使用OR语句,以通过Input Control数组OR公司“ n / a”过滤数据:
<queryFilterString>accountingPeriod in (dateStart:dateEnd) and (companyId in companyId_0 or companyId == 'n/a')</queryFilterString>