Jasper Reports - если значение равно нулю, значение не отображается на графике - PullRequest
0 голосов
/ 01 марта 2020

У меня есть график с 5 параметрами. Если значение одного из параметров равно нулю, мне нужно, чтобы оно исчезло на графике. Теперь я вижу значение как 0. В таблице мне удалось скрыть столбцы с нулевыми параметрами, но мне не повезло с графиком. Я посылаю данные и параметры от Java, к сожалению, я не нашел инструкций по этому вопросу. Вот что у меня есть:

enter image description here

Вот что мне нужно:

enter image description here

Код этой диаграммы:

<barChart>
            <chart>
                <reportElement key="" x="0" y="200" width="555" height="200" isRemoveLineWhenBlank="true" uuid="c7f255b2-3203-4eb5-86a2-6b8e56ecb8f9">
                    <printWhenExpression><![CDATA[$V{REPORT_COUNT}==1]]></printWhenExpression>
                </reportElement>
                <chartTitle/>
                <chartSubtitle/>
                <chartLegend/>
            </chart>
            <categoryDataset>
                <dataset resetType="Report">
                    <datasetRun subDataset="Dataset1" uuid="64a5184b-b3fb-4f3f-ae53-db8d9e23cf4e">
                        <dataSourceExpression><![CDATA[$P{TestDataSource}.cloneDataSource()]]></dataSourceExpression>
                    </datasetRun>
                </dataset>
                <categorySeries>
                    <seriesExpression><![CDATA[$F{nazev}]]></seriesExpression>
                    <categoryExpression><![CDATA["1"]]></categoryExpression>
                    <valueExpression><![CDATA[$F{value1}]]></valueExpression>
                </categorySeries>
                <categorySeries>
                    <seriesExpression><![CDATA[$F{nazev}]]></seriesExpression>
                    <categoryExpression><![CDATA["2"]]></categoryExpression>
                    <valueExpression><![CDATA[$F{value2}]]></valueExpression>
                </categorySeries>
                <categorySeries>
                    <seriesExpression><![CDATA[$F{nazev}]]></seriesExpression>
                    <categoryExpression><![CDATA["3"]]></categoryExpression>
                    <valueExpression><![CDATA[$F{value3}]]></valueExpression>
                </categorySeries>
                <categorySeries>
                    <seriesExpression><![CDATA[$F{nazev}]]></seriesExpression>
                    <categoryExpression><![CDATA["4"]]></categoryExpression>
                    <valueExpression><![CDATA[$F{value4}]]></valueExpression>
                </categorySeries>
                <categorySeries>
                    <seriesExpression><![CDATA[$F{nazev}]]></seriesExpression>
                    <categoryExpression><![CDATA["5"]]></categoryExpression>
                    <valueExpression><![CDATA[$F{value5}]]></valueExpression>
                </categorySeries>
            </categoryDataset>
            <barPlot isShowLabels="true">
                <plot/>
                <itemLabel/>
                <categoryAxisFormat>
                    <axisFormat labelColor="#000000" tickLabelColor="#000000" axisLineColor="#000000"/>
                </categoryAxisFormat>
                <valueAxisFormat>
                    <axisFormat labelColor="#000000" tickLabelColor="#000000" axisLineColor="#000000"/>
                </valueAxisFormat>
            </barPlot>
        </barChart>

В столбцах таблицы я использую это условие:

<defaultValueExpression><![CDATA[$P{showColumn}.booleanValue() == true]]></defaultValueExpression>

Но я не могу (или не знаю, как) использовать это условие в серии / категории диаграммы. Я пытаюсь использовать Chart Customizer, но не знаю, как его использовать.

...