7

計算された変数を含むテキストフィールドを持つタイトルバンドがあります。テキストフィールドevaluationTimeReportに設定されています。これは、変数resetTypeの場合と同じです。このフィールドの背景色を条件付きスタイルで設定しようとしていますが、次のようなエラーメッセージが表示され続けます。 $V{avg_perc}

Invalid expression: !Double.isNaN($V{avg_perc}) && $V{avg_perc} >= 0.8

列フッターで同じ条件付きスタイルを使用してまったく同じことを行っています。このフィールドのevaluationTimeReportに設定しても、問題なく機能します。

削除した後!Double.isNaN($V{avg_perc})、エラーは発生しなくなりましたが、式は機能しません。どの値がどの値であっても、どの条件も有効でない場合、私のフィールドは基本色である赤のままです$V{avg_perc}ただし、 ColumnFooterでは引き続き機能します。これが私のスタイルです:

<style name="avg_color" mode="Opaque" backcolor="#FF0000" pdfFontName="Helvetica-Bold">
    <conditionalStyle>
        <conditionExpression><![CDATA[$V{avg_perc} >= 0.8]]></conditionExpression>
        <style backcolor="#008000"/>
    </conditionalStyle>
    <conditionalStyle>
        <conditionExpression><![CDATA[$V{avg_perc} >= 0.6 && $V{avg_perc} < 0.8]]></conditionExpression>
        <style backcolor="#FFCC00"/>
    </conditionalStyle>
</style>

このために使用されるフィールドと変数:

<field name="perc" class="java.lang.Double"/>
<variable name="avg_perc" class="java.lang.Double" calculation="Average">
    <variableExpression><![CDATA[$F{perc}]]></variableExpression>
</variable>

これを機能させる方法はありますか?バージョン3.7.4でJasperReportsiReportを使用しています。

4

3 に答える 3

10

私はついに私の問題の解決策を見つけました。追加する

<property name="net.sf.jasperreports.style.evaluation.time.enabled" value="true"/>

レポートレベルでは、要素が評価された時点で条件付きスタイルが実行されます。詳細については、Jaspersoftコミュニティでこの回答を参照してください。

于 2012-09-05T12:50:45.770 に答える
3

あなたの見解ではireportデザイナー。

フィールドをクリックし、プロパティパネルでクリックします。:マークアップ=スタイル付き選択

フィードを右クリックします。式の編集:

($F{fila1}.equals("c") ? "<style forecolor='red'>"+ $F{fila1}+"</style>" : $F{fila1})

またはxml

<textFieldExpression><![CDATA[($F{fila1}.equals("c") ? "<style forecolor='red'>"+ $F{fila1}+"</style>" : $F{fila1})]]></textFieldExpression>
于 2013-08-06T22:00:21.597 に答える
1

要件に基づいてこのコードを変更します

<style name="alternateStyle" fontName="Arial">
    <conditionalStyle>
        <conditionExpression><![CDATA[new Boolean($V{AMOUNT}.intValue() == 0)]]></conditionExpression>
        <style mode="Opaque" backcolor="#FF0000" isBold="true"/>
    </conditionalStyle>
</style>

また、このリンクを参照してください:リンク

于 2017-06-21T13:23:03.270 に答える