2010-03-29 5 views
11

Ich bin neu bei JasperReports. Ich entwerfe einen Bericht mit iReport. Meine Anforderung ist, dass ich zwei Werte (Felder) x, y zum Vergleich habe. Wenn x < y ist, sollte die Datenfarbe für y in 'schwarz' geändert werden. & Wenn größer, sollte die Datenfarbe von y auf 'rot' geändert werden.Formatieren von Felddatenfarbe basierend auf Bedingung

Bitte beraten Sie mich, wie Sie auf dieser & weitermachen, wo zu validieren.

Antwort

7

Es gibt ein discussion an den Jasperforge-Foren zum Thema, ist dies wahrscheinlich der wichtigste Teil:

Erst Drag & Drop das Feldes, das Sie zweimal dyanamic Farbe haben wollen. Ändern Sie die Hintergrundfarbe für das erste Feld in Gelb und das zweite Feld in Rot. Klicken Sie nun mit der rechten Maustaste auf das gelbe Feld, klicken Sie auf "Eigenschaften", wählen Sie die Registerkarte "Allgemein" aus und schreiben Sie diesen Code in das Feld "Ausdruck beim Ausdruck": (Ersetzen Sie mein Feld durch den tatsächlichen Feldnamen) $ F {MyConditinalField} .intValue()> = 5 & & $ F {MyConditinalField} .intValue() < 10? Boolean.TRUE: Boolean.FALSE // wenn> = 5 und < 10 dann gelbe Feld zeigen // Code für rotes Feld an der gleichen Stelle wie oben $ F {MyConditinalField } .intValue()> = 10? Boolean.TRUE: Boolean.FALSE Hoffe, das hilft.

Es ist nicht genau, was Sie brauchen, könnte aber wahrscheinlich nahe genug, um Sie in die richtige Richtung zu schieben.

+1

Dank Tomislav, hat mir geholfen, Ihre Erklärung viel um meine Anforderung zu erfüllen. Grüße, chandu – Chandu

8

Ich weiß, das ist eine alte Frage, aber ich nehme an, Jasper Reports hat sich geändert. Sie können dies jetzt mit Bedingungsstilen erreichen.

In iReport erstellen Sie einen neuen Style und geben ihm einen Namen. Sie können alle Standardeinstellungen wie Schriftart, Farbe, Schriftgröße usw. in den Stil einfügen. Dann klicken Sie mit der rechten Maustaste auf den Stlye und wählen Sie Conditional Style hinzufügen. Dann auf das Feld oder die Felder, die Sie auf Sie anwenden möchten, legen Sie den Stil zu einem, den Sie erstellt haben.

So in Ihrem Beispiel ich die Forecolor im Haupt stlye schwarz sein gesetzt würde, stellen Sie den Zustand Expression im Bedingter Stil

$F{y} > $F{x} 

und die Forecolor in der bedingten Stlye zu rot. Dann legen Sie im Detailbereich, in dem Sie das y-Feld platziert haben, den Style auf den von uns erstellten.

5

Beispiel die geraden Zeile und ungerade Zeile zu einfärben ist unten, die Hoffnung, die

<style name="BackgroundStyle" mode="Opaque" backcolor="#FFFFFF"> 

    <conditionalStyle> 
     <conditionExpression><![CDATA[Boolean.valueOf($V{REPORT_COUNT}.intValue() % 2 == 0)]]></conditionExpression> 
     <style backcolor="#CCFFCC"/> 
    </conditionalStyle> 
</style> 

helfen und ordnen Stil zu jeder Spalte, arbeitete mit mir :)