2009-09-24 5 views
7

Ich erstelle einen Jaspis-Bericht.In dem möchte ich eine Methode schreiben, die Integer nimmt und einige Prozess und gibt eine Zeichenfolge zurück.Ich weiß nicht, wie Sie Methoden in Jaspis-Bericht schreiben.Ist es möglich zu schreiben? Kann jemand helfen Ich in dieserSchreibmethoden in Jaspis Bericht?

Ich benutze iReport3.6.0.

Beispielcode:

<textField> 
    <reportElement x="400" y="10" width="80" height="15"/> 
    <textElement textAlignment="Left" verticalAlignment="Middle"/> 
    <textFieldExpression  class="java.lang.String"> 
       <![CDATA[$F{intValue}]]> 
    </textFieldExpression> 
</textField> 

In dem obigen Code "$ F {intValue}" liefert integer.I dass ein Verfahren geben will und dass Methoden geben Typ String sein will.

Dank

Antwort

14

einen Helfer Java-Klasse mit einer statischen Methode schreiben, die das Integer-Argument erhalten werden und gewünschtes Ergebnis zurück:

package com.yourname.reports.util; 

public class JrUtils { 
    public static String intFormatter(int arg) { 
    return "Beautified int: " + arg; 
    } 
} 

Fügen Sie diese Klasse, um den Classpath für die Erstellung von Jasper Vorlage und für die verwendeten Laufzeit. Klicken Sie im iReport mit der rechten Maustaste auf den Titel des Berichts in der Ansicht "Bericht-Inspektor" und wählen Sie "Eigenschaften". Blättern Sie zu ‚Import‘ nach unten und führen Sie Ihre Klasse:

com.yourname.reports.util.JrUtils 

Importparameteraddierroutine Java-Klasse zu Ihrem Bericht, und rufen Sie die statische Methode aus dem Bereich mit:

<![CDATA["Transformed int: " + JrUtils.intFormatter($F{intValue}) ]> 
+0

Dank ... Funktioniert gut. .. – DonX

+0

sind Sie willkommen –

1

@Boris Pavlović Antwort ist gut, aber Ich denke, es fehlt eine kleine Denk- Klassenpfad. Also, wenn Sie einen Fehler auf der Kompilierung wie:

net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 
Only a type can be imported. com.core.report.Util resolves to a package import com.core.report.Util; 

. Util cannot be resolved value = (java.lang.String)(Util.doit(((java.sql.Timestamp)field_time.getValue()))); 

Sie müssen hinzufügen * .jar der Sie projizieren, die Hilfsklasse wie folgt erklärt enthält:

> In You iReport Designer go to Tool -> Options -> iReport -> Classpath -> 
and press button "Add JAR" and select You project's jar. 
Verwandte Themen