2010-01-12 5 views
2

J'ai un graphique linéaire généré à partir d'un SQL, j'ai besoin que les données soient tracées dans différentes couleurs en fonction de la valeur. Par exemple: Couleur verte pour les valeurs positives et Couleur rouge pour les valeurs négatives.Tracer des points avec une couleur différente en fonction de la valeur dans Graphique linéaire utilisant JasperReports

J'ai ajouté le contenu de jrxml,

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd"> 
<jasperReport 
     name="escalationTriggersDrilldown" 
     columnCount="1" 
     printOrder="Vertical" 
     orientation="Portrait" 
     pageWidth="500" 
     pageHeight="350" 
     columnWidth="500" 
     columnSpacing="0" 
     leftMargin="0" 
     rightMargin="0" 
     topMargin="0" 
     bottomMargin="0" 
     whenNoDataType="AllSectionsNoDetail" 
     isTitleNewPage="false" 
     isSummaryNewPage="false" 
     resourceBundle="conformus" 
     whenResourceMissingType="Key"> 
    <property name="ireport.scriptlethandling" value="0" /> 
    <property name="ireport.encoding" value="UTF-8" /> 
    <import value="java.util.*" /> 
    <import value="net.sf.jasperreports.engine.*" /> 
    <import value="net.sf.jasperreports.engine.data.*" /> 

    <parameter name="conName" isForPrompting="true" class="java.lang.String"/> 
    <parameter name="conId" isForPrompting="true" class="java.lang.String"/> 
    <parameter name="orgId" isForPrompting="true" class="java.lang.String"/> 
    <parameter name="chartName" isForPrompting="true" class="java.lang.String"/> 
    <parameter name="sql" isForPrompting="true" class="java.lang.String"/> 
    <parameter name="unit" isForPrompting="true" class="java.lang.String"/> 
    <parameter name="indicatorName" isForPrompting="true" class="java.lang.String"/> 
    <queryString><![CDATA[$P!{sql}]]></queryString> 

    <field name="INDICATOR_NAME" class="java.lang.String"/> 
    <field name="UNIT_OF_MEASURE" class="java.lang.String"/> 
    <field name="E_DATE" class="java.lang.String"/> 
    <field name="CALCULATED_VALUE" class="java.math.BigDecimal"/> 
    <field name="FLAG_VALUE" class="java.math.BigDecimal"/> 


     <summary> 
      <band height="350" isSplitAllowed="true" > 
       <lineChart> 
        <chart hyperlinkTarget="Self" > 
        <reportElement 
         x="0" 
         y="0" 
         width="500" 
         height="350" 
         key="element-1"/> 
        <box></box> 
         <chartTitle color="#000000" > 
        <font fontName="Trebuchet MS" pdfFontName="Helvetica" size="11" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" isPdfEmbedded="false" pdfEncoding="Cp1252"/> 
           <titleExpression><![CDATA[str($P{chartName})+" - "+$P{indicatorName}]]></titleExpression> 
        </chartTitle> 
         <chartLegend textColor="#000000" backgroundColor="#FFFFFF" > 
        </chartLegend> 
        </chart> 
        <categoryDataset> 
         <dataset > 
         </dataset> 
         <categorySeries> 
          <seriesExpression><![CDATA[$F{INDICATOR_NAME}]]></seriesExpression> 
          <categoryExpression><![CDATA[$F{E_DATE}]]></categoryExpression> 
          <valueExpression><![CDATA[$F{CALCULATED_VALUE}]]></valueExpression> 
       <itemHyperlink hyperlinkType="Reference"> 
         <hyperlinkTooltipExpression><![CDATA[""+$F{CALCULATED_VALUE}]]></hyperlinkTooltipExpression> 
       </itemHyperlink> 
         </categorySeries> 
        </categoryDataset> 
        <linePlot > 
         <plot /> 
         <categoryAxisFormat> 
          <axisFormat > 
          </axisFormat> 
         </categoryAxisFormat> 
        <valueAxisLabelExpression><![CDATA[$P{unit}]]></valueAxisLabelExpression> 
         <valueAxisFormat> 
          <axisFormat > 
           <labelFont> 
        <font fontName="Trebuchet MS" pdfFontName="Helvetica" size="10" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" isPdfEmbedded="false" pdfEncoding="Cp1252"/> 
           </labelFont> 
           <tickLabelFont> 
           </tickLabelFont> 
          </axisFormat> 
         </valueAxisFormat> 
        </linePlot> 
       </lineChart> 
      </band> 
     </summary> 
</jasperReport> 

Répondre

0

Vous devrez peut-être utiliser la classe Customizer pour définir les couleurs. Vous pouvez accéder aux données de la classe de personnalisation. Vous devrez peut-être mettre les conditions pour les données et affecter les couleurs aux lignes.

Questions connexes