[iReport] Chamar função externa

Estou começando a utilizar a ferramenta iReport para geração de relatórios e tenho uma dúvida: é possível inserir na tela um campo de texto (ou variável) que chame alguma função externa em Java feita por mim?

Dando um exemplo bem simples, imagine que eu tenha uma classe chamada MyStrings e, dentro dela, um método chamado Inverter (que simplesmente retorna a String ao contrário). Teria como eu colocar um campo de texto/variável na tela que chamasse essa função? Algo como new MyStrings().Inverter(“testando”)?

Obs.: o relatório deve ser gerado, somente, em formato PDF.

Valeu

Cara, não entendi, a sua pergunta…
Vc esta querendo fazeer seu relatorio efetuar uma ação, é isso?
:?:

Não.

Quando você coloca um text field na tela, no iReport, pode colocar expressões e usar métodos, certo? Ou seja, dá para fazer algo como $F{NOME_DO_CAMPO}.concat(" testando"). O que eu quero é, dessa forma, poder usar métodos criados por mim, em uma classe particular contida no meu projeto. Dá para fazer? Se sim, como?

http://www.guj.com.br/posts/list/19107.java

[quote=bruno_cobra]Não.

Quando você coloca um text field na tela, no iReport, pode colocar expressões e usar métodos, certo? Ou seja, dá para fazer algo como $F{NOME_DO_CAMPO}.concat(" testando"). O que eu quero é, dessa forma, poder usar métodos criados por mim, em uma classe particular contida no meu projeto. Dá para fazer? Se sim, como?[/quote]

Não é dificil não.
Eu faço da seguinte forma.
Dentro do Field, eu coloco o nome completo da classe mais o nome do método (no meu caso, os métodos são de uma classe utilitária com métodos estáticos):

Lembrando que a classe deve estar no seu classpath do iReport quando for compilar o relatório (o .class, não o .java).

[]'s
JL

MUITO OBRIGADO TODOS!

Funcionou perfeitamente.

olá
preciso fazer a mesma coisa
mas não consigo
configurei o classpath do ireport
e no field pra imprimir o valor da classe java
quando compilo da erro
o que pode ser ?
obrigado

erro

it.businesslogic.ireport.gui.logpane.ProblemItem@c3b85a	sysweb.Mascara.PLAQUETA cannot be resolved to a type	Linha 240, Coluna 53	/jasperReport/detail[1]/band[1]/textField[1]/textFieldExpression[1]

Pessoal, sei que esse tópico é antigo, mas pode ajudar quem tiver acessando. Vou fazer uma observação.

Passo a passo:
1 - Conforme o Mero_Aprendiz escreveu:

“Dentro do Field, eu coloco o nome completo da classe mais o nome do método (no meu caso, os métodos são de uma classe utilitária com métodos estáticos)”:

br.com.qualquercoisa.MinhaClasseComMetodo.metodoQueVaiExecutar($F{UM_VALOR_DE_PARAMETRO})

2 - Adicionar as classes externas no classpath do iReport (Opções > Classpath).
Obs: deve ser adicionada a raiz dos arquivos .class. Exemplo: C:/classes, onde C:/classes contém br/com/…

3 - Após adicionar é necessário selecioná-los para utilização em opções > caminho das fontes.

Esse link pode ajudar bastante: http://sites.google.com/site/lipe82/Home/diaadia/relatorios-ireport1-3-3-jasperreport1-3-0

Valeu

Abraços

Galera reabrindo esse topico estou com um relatorio ja coloquei o .jar no classpath chamei o metodo e tudo funcionou normal no iReport compilei tudo blz!
Só que quando eu chamo o relatorio na aplicação ele me retorna o seguinte erro:
view plaincopy to clipboardprint?

    Error evaluating expression :   
    Source text : barrinhas.getBarrinhas($F{menor_sal_empresa}.doubleValue(),$F{maior_sal_geral_total}.doubleValue())  
    at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:203)  
    at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:591)  
    at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:559)  
    at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:884)  
    at net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:421)  
    at net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:406)  
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:257)  
    at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:457)  
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2037)  
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:771)  
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:281)  
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:144)  
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:909)  
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:822)  
    at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:61)  
    at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446)  
    at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:276)  
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:745)  
    at reports.ReportClass.generateReport(ReportClass.java:91)  
    at ui.MainWindow.geraRelatorio(MainWindow.java:1996)  
    at ui.MainWindow$26.actionPerformed(MainWindow.java:1963)  
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)  
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)  
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)  
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)  
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)  
    at java.awt.Component.processMouseEvent(Unknown Source)  
    at javax.swing.JComponent.processMouseEvent(Unknown Source)  
    at java.awt.Component.processEvent(Unknown Source)  
    at java.awt.Container.processEvent(Unknown Source)  
    at java.awt.Component.dispatchEventImpl(Unknown Source)  
    at java.awt.Container.dispatchEventImpl(Unknown Source)  
    at java.awt.Component.dispatchEvent(Unknown Source)  
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)  
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)  
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)  
    at java.awt.Container.dispatchEventImpl(Unknown Source)  
    at java.awt.Window.dispatchEventImpl(Unknown Source)  
    at java.awt.Component.dispatchEvent(Unknown Source)  
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)  
    at java.awt.EventQueue.access$000(Unknown Source)  
    at java.awt.EventQueue$3.run(Unknown Source)  
    at java.awt.EventQueue$3.run(Unknown Source)  
    at java.security.AccessController.doPrivileged(Native Method)  
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)  
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)  
    at java.awt.EventQueue$4.run(Unknown Source)  
    at java.awt.EventQueue$4.run(Unknown Source)  
    at java.security.AccessController.doPrivileged(Native Method)  
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)  
    at java.awt.EventQueue.dispatchEvent(Unknown Source)  
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)  
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)  
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)  
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)  
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)  
    at java.awt.EventDispatchThread.run(Unknown Source)  
    aused by: java.lang.NoSuchMethodError: barrinhas.getBarrinhas(DD)Ljava/lang/String;  
    at total1_1351773787724_55323.evaluate(total1_1351773787724_55323:564)  
    at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:190)