2009-09-24 3 views
7

Я создаю отчет о яшме. В этом я хочу написать один метод, который принимает целое число и выполняет некоторый процесс и возвращает строку. Я не знаю, как писать методы в отчете jasper. Можно ли написать? Может ли кто-нибудь помочь? я в этомНаписание методов в отчете о яшме?

Я использую iReport3.6.0.

Пример код:

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

В приведенной выше коде «$ F {intValue}» возвращает integer.I хочет передать, что один метод и методы возвращают тип хочет быть строкой.

Благодаря

ответ

14

Написать класс помощника Java со статическим методом, который будет получать целочисленный аргумент и возвращает желаемый результат:

package com.yourname.reports.util; 

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

Добавить этот класс к классам, используемым для составления шаблона JasperReports и для во время выполнения. В правом окне iReport нажмите на заголовок отчета в представлении «Report Inspector» и выберите «Свойства». Прокрутите вниз до «Импорт» и добавить свой класс:

com.yourname.reports.util.JrUtils 

Добавить импорт Java класс в отчет и вызвать статический метод из поля с помощью:

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

Благодаря ... Работает хорошо. .. – DonX

+0

добро пожаловать –

1

@Boris Pavlović ответ хорош, но Я думаю, что пропустите один маленький думаю-classpath. Так что если у Вас есть ошибка в компиляции, как:

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

Вы должны добавить * .jar из проекта Вы, который содержит объявленный вспомогательный класс следующим образом:

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