Problema para passar parametro pro ireport

2 respostas
rodolpho.netto

Pessoal meu relatório se eu entro com os parametros la no ireport ele passa normal e abre o relatório do jeito certo, porem quanto eu passo do form da erro, eu tenho um outro form e outro relatorio e funciona normalmente, e esse nao, segue o código que chama e o erro que passa:

public void chamaRelatorioTitulos() {
        try {
        String data_texto = eddata.getText();
            // vamos quebrar aqui a sua data
            String[] data = data_texto.split("/");
            // agora vamos converter pra long
            int ano = Integer.parseInt(data[2]) - 1900;
            int mes = Integer.parseInt(data[1]);
            int dia = Integer.parseInt(data[0]);
            int mes_correto = mes-1;
            // agora é só instanciar a Date de java.sql
            java.sql.Date newDate = new java.sql.Date(ano, mes_correto, dia);
          
            // bom uso da sua variavel Date no formato sql
          String data_texto2 = eddata2.getText();
            // vamos quebrar aqui a sua data
            String[] data2 = data_texto2.split("/");
            // agora vamos converter pra long
            int ano2 = Integer.parseInt(data2[2]) - 1900;
            int mes2 = Integer.parseInt(data2[1]);
            int dia2 = Integer.parseInt(data2[0]);
            int mes_correto2 = mes2-1;
            // agora é só instanciar a Date de java.sql
            java.sql.Date newDate2 = new java.sql.Date(ano2, mes_correto2, dia2);
            // bom uso da sua variavel Date no formato sql
                        System.out.print(newDate);
  System.out.print(newDate2);
            HashMap parametros = new HashMap();
            parametros.put("data", newDate);
            parametros.put("data2", newDate2);
            InputStream is = getClass().getResourceAsStream("/relatorio/rel_caixa.jasper"); 
            JasperPrint jp = JasperFillManager.fillReport(is, parametros, conexao.getYamadaConnection());
            JasperViewer jv = new JasperViewer(jp, false);
            jv.setVisible(true);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
2012-11-242012-11-24net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : 
	Source text : $P{data}
	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.fillTitle(JRVerticalFiller.java:337)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:273)
	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:407)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:824)
	at yamada3.rel_movi.chamaRelatorioTitulos(rel_movi.java:56)
	at yamada3.rel_movi.jButton1ActionPerformed(rel_movi.java:153)
	at yamada3.rel_movi.access$000(rel_movi.java:16)
	at yamada3.rel_movi$1.actionPerformed(rel_movi.java:96)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener$Actions.actionPerformed(BasicButtonListener.java:303)
	at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1661)
	at javax.swing.JComponent.processKeyBinding(JComponent.java:2879)
	at javax.swing.JComponent.processKeyBindings(JComponent.java:2926)
	at javax.swing.JComponent.processKeyEvent(JComponent.java:2842)
	at java.awt.Component.processEvent(Component.java:6282)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1890)
	at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:752)
	at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1017)
	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:889)
	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:717)
	at java.awt.Component.dispatchEventImpl(Component.java:4731)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Window.dispatchEventImpl(Window.java:2713)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:680)
	at java.awt.EventQueue$4.run(EventQueue.java:678)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.ClassCastException: java.sql.Date cannot be cast to java.lang.String
	at report32name_1353863321231_121412.evaluate(report32name_1353863321231_121412:182)
	at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:190)
	... 61 more
CONSTRUÍDO COM SUCESSO (tempo total: 15 segundos)

2 Respostas

A

As mensagens de erro indicam que vc tá tentando passar um Date pro parâmetro data lá do teu relatório. Só que ele parece estar definido como String. Verifique o tipo dele.

rodolpho.netto

mudei o tipo do parametro para data, deu o mesmo erro.

Criado 25 de novembro de 2012
Ultima resposta 25 de nov. de 2012
Respostas 2
Participantes 2