2010-04-15 4 views
9

Sto usando il seguente codice per generare un grafico in JasperReports.Come visualizzare la data in formato HH: mm: ss in JasperReports?

<xyLineChart> 
    <chart evaluationTime="Band"> 
     <reportElement x="0" y="0" width="555" height="500"/> 
    </chart> 
    <xyDataset> 
     <dataset incrementType="None"/> 
     <xySeries> 
      <seriesExpression><![CDATA["CpuUsageGraph"]]></seriesExpression> 
      <xValueExpression><![CDATA[new Long($F{time}.getTime())]]></xValueExpression> 
      <yValueExpression><![CDATA[$F{cpuUsage}]]></yValueExpression> 
     </xySeries> 
    </xyDataset> 
    <linePlot> 
     <plot/> 
    </linePlot> 
</xyLineChart> 

Sto stampando la data sull'asse X, ma viene visualizzata in millisecondi. Come posso visualizzarlo nel formato hh:mm:ss?

risposta

17

È possibile utilizzare seguente codice in Java:

new SimpleDateFormat("MM-dd-yyyy HH:mm:ss z").format($V{VAR_DATE}) 

dove $ V {} VAR_DATE è la variabile data da convertire nel formato.

+0

Cosa significa la z in questo stand? – MindBrain

+1

'z' sta per Fuso orario. Puoi controllare qui per più modelli - http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html –

3

Oppure è possibile inserire la variabile di data in un campo di testo e quindi passare alla vista delle proprietà e scrivere nel campo Modello: HH: mm: ss. Potrebbe essere utile anche spuntare la casella di controllo "Vuoto quando null"

0

La proprietà che stai cercando è la "maschera dell'etichetta di tick dell'asse del tempo". Non esiste un campo "pattern" per un grafico delle serie temporali.

0
<xyLineChart> 
    <chart evaluationTime="Band"> 
     <reportElement x="0" y="0" width="555" height="500"/> 
    </chart> 
    <xyDataset> 
     <dataset incrementType="None"/> 
     <xySeries> 
      <seriesExpression><![CDATA["CpuUsageGraph"]]></seriesExpression> 
      <xValueExpression><![CDATA[new Long($F{time}.getTime())]]></xValueExpression> 
      <yValueExpression><![CDATA[$F{cpuUsage}]]></yValueExpression> 
     </xySeries> 
    </xyDataset> 
    <linePlot> 
     <plot/> 
    </linePlot> 
</xyLineChart> 

public static String DATE_TIME_FORMAT finale = "aaaa-dd-MM'T'HH: mm: ss.SSS";
DateFormat df = new SimpleDateFormat (DATE_TIME_FORMAT); df.format ($ V {} VAR_DATE)

0

Specificare il "Periodo di tempo" come "minuto" nella sezione 'particolari' dei dettagli grafici.

timePeriod="Minute" 

Da JasperReports Ultimate Guide: Periodo Espressione

Questa espressione restituisce un valore java.util.Date dal quale il motore estrarrà il periodo di tempo corrispondente a seconda del valore impostato per la attributo timePeriod menzionato in precedenza nel dataset Serie temporale . Ad esempio, se il grafico riguarda dati annuali, il motore estrarrà solo l'anno dal valore della data, oppure se si è che raccoglie dati mensili, il motore utilizzerà solo il valore del mese da l'oggetto data restituito da questa espressione .