2010-01-12 132 views
2

我有一個從SQL生成的折線圖,我需要根據值以不同的顏色繪製數據。 例如:綠色表示正值,紅色表示負值。基於使用JasperReports的折線圖中的值繪製不同顏色的點

我已經加入了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> 

回答

0

您可能需要使用定製類來設置顏色。 您可以訪問定製程序類中的數據。您可能需要輸入數據的條件並將顏色分配到行中。

相關問題