2009-09-24 19 views
7

Estoy creando un informe de jaspe.En eso quiero escribir un método que toma un entero y hace algún proceso y devuelve una cadena.No sé cómo escribir métodos en el informe de jaspe.¿Es posible escribir? ¿Puede ayudar alguien? yo en este¿Métodos de escritura en el informe de jaspe?

Estoy usando iReport3.6.0.

Código de ejemplo:

<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> 

En el código anterior "$ {F} intValue" devuelve integer.I quiere pasar eso a un método y métodos que volver tipo quiere ser cadena.

Gracias

Respuesta

14

Escribe una clase de ayuda de Java con un método estático que recibirá el argumento entero y devolver el resultado deseado:

package com.yourname.reports.util; 

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

Añadir esta clase a la ruta de clase utilizada para la elaboración de la plantilla jasperreports y para el tiempo de ejecución En iReport, haga clic derecho en el título del informe en la vista "Informe del inspector" y seleccione "Propiedades". Desplazarse hacia abajo para 'importados' y añadir su clase:

com.yourname.reports.util.JrUtils 

Agregar clase Java importación a su informe e invocar el método estático del campo usando:

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

Gracias ... Funciona bien. .. – DonX

+0

eres bienvenido –

1

@Boris Pavlovic respuesta es buena, pero Creo que se pierda un pequeño pensamiento- classpath. Así que si tiene un error de compilación como:

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()))); 

hay que añadir * .jar de Proyectas que contiene declaró clase de ayuda de la siguiente manera:

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