我有一个折线图,其中有四个系列的类别,例如:-
收入、目标、成本和毛利率。
默认情况下,图表将具有所有四个类别。
现在我想通过参数(复选框)传递这些类别,用户可以在其中选择他想在图表中看到的类别,因为有时他只想查看收入趋势而不对一年中几个月的目标趋势感兴趣。输入控件的默认值将是收入,如果他想查看目标,他可以通过选择目标复选框参数为目标添加类别系列。
像这样的东西:-
在 iReport 中可行吗?
我的类别系列代码:- 在这个类别系列中,我创建了一个 0 值的虚拟系列。
<categorySeries>
<seriesExpression><![CDATA[new Boolean($P{p_target}) ? "Target" :"Target"]]></seriesExpression>
<categoryExpression><![CDATA[new Boolean($P{p_target}) ? $F{MTHYR} :""]]></categoryExpression>
<valueExpression><![CDATA[new Boolean($P{p_target}) ? $F{TARGET} : $F{dumy}]]></valueExpression>
</categorySeries>
<categorySeries>
<seriesExpression><![CDATA[new Boolean($P{p_revenue}) ? "Revenue" :"Revenue"]]></seriesExpression>
<categoryExpression><![CDATA[new Boolean($P{p_revenue}) ? $F{MTHYR} :""]]></categoryExpression>
<valueExpression><![CDATA[new Boolean($P{p_revenue}) ?$F{REVENUE} : $F{dumy}]]></valueExpression>
</categorySeries>
<categorySeries>
<seriesExpression><![CDATA[new Boolean($P{p_cost}) ? "Cost" :"Cost"]]></seriesExpression>
<categoryExpression><![CDATA[new Boolean($P{p_cost}) ? $F{MTHYR} :""]]></categoryExpression>
<valueExpression><![CDATA[new Boolean($P{p_cost}) ? $F{COST} : $F{dumy}]]></valueExpression>
</categorySeries>
<categorySeries>
<seriesExpression><![CDATA[new Boolean($P{p_gross_margin}) ? "Gross Margin" :"Gross Margin"]]></seriesExpression>
<categoryExpression><![CDATA[new Boolean($P{p_gross_margin}) ? $F{MTHYR} :$F{MTHYR}]]></categoryExpression>
<valueExpression><![CDATA[new Boolean($P{p_gross_margin}) ? $F{GROSS_MARGIN} : $F{dumy}]]></valueExpression>
</categorySeries>
在@MisterMichaelK 建议的解决方案之后,我将虚拟系列默认值更改为-50,但现在我的问题是类别表达式也是必需的,如果语句是这样的: new Boolean($P{p_revenue}) ?$F{MTHYR} :"" ,但它总是为每个系列显示一些东西,如上图:-