0

みんなのおかげです。アレックス K さんのおかげで、原因がわかりました。これはおそらく ireport 3.0 のバグです。外側のスタイル タグに color プロパティを含めないでください。私はそれを削除し、それはうまくいきます。

================================================== ============================= JasperReportsでのレポートの条件式表現に困っています。iReportのバージョンは 3.0です。

ブール式がまったく機能しないことがわかりました。


条件付きスタイル:

<style 
    name="old"
    mode="Opaque"
    **forecolor="#990033"**
>

    <conditionalStyle>
        <conditionExpression><![CDATA[$F{age}.intValue()>60?new Boolean(true):new Boolean(false)]]></conditionExpression>
        <style 
            name="old"
            isDefault="false"
            mode="Opaque"
            forecolor="#990033"
        >
        </style>
    </conditionalStyle>
</style>

テキストフィールド式:

<textField isStretchWithOverflow="false" pattern="" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
                <reportElement
                    style="old"
                    x="315"
                    y="0"
                    width="78"
                    height="14"
                    key="textField-3"/>
                <box></box>
                <textElement>
                    <font/>
                </textElement>
            <textFieldExpression   class="java.lang.Integer"><![CDATA[$F{age}]]></textFieldExpression>
            </textField>

その結果、60 歳未満であっても、すべての年齢層が赤色になります。

4

1 に答える 1

0

みんなのおかげです。アレックス K さんのおかげで、原因がわかりました。これはおそらく ireport 3.0 のバグです。外側のスタイル タグに color プロパティを含めないでください。私はそれを削除し、それはうまくいきます。つまり、ireport によって生成される xml コードは

<style 
    name="old"
    mode="Opaque"
    forecolor="#990033"
>

    <conditionalStyle>
        <conditionExpression><![CDATA[$F{age}.intValue()>60?new Boolean(true):new Boolean(false)]]></conditionExpression>
        <style 
            name="old"
            isDefault="false"
            mode="Opaque"
            forecolor="#990033"
        >
        </style>
    </conditionalStyle>
</style>

このようにして、スタイルはすでに有効になっています。外側のスタイル タグに設定されているプロパティを削除します。したがって、うまく機能する最終的な xml コードは次のようになります。

<style 
    name="old"
    mode="Opaque"   
>

    <conditionalStyle>
        <conditionExpression><![CDATA[$F{age}.intValue()>60?new Boolean(true):new Boolean(false)]]></conditionExpression>
        <style 
            name="old"
            isDefault="false"
            mode="Opaque"
            forecolor="#990033"
        >
        </style>
    </conditionalStyle>
</style>
于 2013-07-11T15:51:13.117 に答える