2010-01-12 96 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

您可能需要使用定制类来设置颜色。 您可以访问定制程序类中的数据。您可能需要输入数据的条件并将颜色分配到行中。

相关问题