elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [Resuelto] Problema con iReport
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] Problema con iReport  (Leído 5,509 veces)
Pantera80

Desconectado Desconectado

Mensajes: 17



Ver Perfil
[Resuelto] Problema con iReport
« en: 15 Diciembre 2014, 11:57 am »

Hola a todos. Resulta que he creado un informe con iReport. Para ello he utilizado el plugin
de Netbeans. Con este informe accedo a una base de datos que he creado en PostgreSQL.

El problema es que me sale el siguiente error, se agradece cualquier tipo de ayuda:

Código:
Error al producir informe: net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file:
1. Cannot cast from Integer to String
                value = (java.lang.String)(((java.lang.Integer)field_id_ruta.getValue())); //$JR_EXPR_ID=10$
                        <--------------------------------------------------------------->
2. Cannot cast from Date to String
                value = (java.lang.String)(((java.sql.Date)field_fecha_servicio.getValue())); //$JR_EXPR_ID=11$
                        <------------------------------------------------------------------>
3. Cannot cast from Integer to String
                value = (java.lang.String)(((java.lang.Integer)field_id_empleado.getValue())); //$JR_EXPR_ID=18$
                        <------------------------------------------------------------------->
4. Cannot cast from Integer to String
                value = (java.lang.String)(((java.lang.Integer)field_id_barrio.getValue())); //$JR_EXPR_ID=19$
                        <----------------------------------------------------------------->
5. Cannot cast from BigDecimal to String
                value = (java.lang.String)(((java.math.BigDecimal)field_total_importe.getValue())); //$JR_EXPR_ID=20$
                        <------------------------------------------------------------------------>
6. Cannot cast from Integer to String
                value = (java.lang.String)(((java.lang.Integer)field_id_ruta.getOldValue())); //$JR_EXPR_ID=10$
                        <------------------------------------------------------------------>
7. Cannot cast from Date to String
                value = (java.lang.String)(((java.sql.Date)field_fecha_servicio.getOldValue())); //$JR_EXPR_ID=11$
                        <--------------------------------------------------------------------->
8. Cannot cast from Integer to String
                value = (java.lang.String)(((java.lang.Integer)field_id_empleado.getOldValue())); //$JR_EXPR_ID=18$
                        <---------------------------------------------------------------------->
9. Cannot cast from Integer to String
                value = (java.lang.String)(((java.lang.Integer)field_id_barrio.getOldValue())); //$JR_EXPR_ID=19$
                        <-------------------------------------------------------------------->
10. Cannot cast from BigDecimal to String
                value = (java.lang.String)(((java.math.BigDecimal)field_total_importe.getOldValue())); //$JR_EXPR_ID=20$
                        <--------------------------------------------------------------------------->
11. Cannot cast from Integer to String
                value = (java.lang.String)(((java.lang.Integer)field_id_ruta.getValue())); //$JR_EXPR_ID=10$
                        <--------------------------------------------------------------->
12. Cannot cast from Date to String
                value = (java.lang.String)(((java.sql.Date)field_fecha_servicio.getValue())); //$JR_EXPR_ID=11$
                        <------------------------------------------------------------------>
13. Cannot cast from Integer to String
                value = (java.lang.String)(((java.lang.Integer)field_id_empleado.getValue())); //$JR_EXPR_ID=18$
                        <------------------------------------------------------------------->
14. Cannot cast from Integer to String
                value = (java.lang.String)(((java.lang.Integer)field_id_barrio.getValue())); //$JR_EXPR_ID=19$
                        <----------------------------------------------------------------->
15. Cannot cast from BigDecimal to String
                value = (java.lang.String)(((java.math.BigDecimal)field_total_importe.getValue())); //$JR_EXPR_ID=20$
                        <------------------------------------------------------------------------>
15 errors



Adjunto el código XML del informe:

Código
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report name" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" >
  3. <property name="ireport.zoom" value="1.0"/>
  4. <property name="ireport.x" value="0"/>
  5. <property name="ireport.y" value="0"/>
  6. <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
  7. <defaultValueExpression><![CDATA["C:\\Juanan\\Proyecto\\Aplicación\\Cliente\\src\\cliente\\"]]></defaultValueExpression>
  8. </parameter>
  9. <parameter name="FECHA_SERVICIO" class="java.sql.Date">
  10. <defaultValueExpression><![CDATA[]]></defaultValueExpression>
  11. </parameter>
  12. <queryString>
  13. <![CDATA[SELECT * FROM PEDIDO WHERE FECHA_SERVICIO = $P{FECHA_SERVICIO} ORDER BY ID_RUTA;]]>
  14. </queryString>
  15. <field name="id_empleado" class="java.lang.Integer"/>
  16. <field name="id_barrio" class="java.lang.Integer"/>
  17. <field name="fecha_servicio" class="java.sql.Date"/>
  18. <field name="total_importe" class="java.math.BigDecimal"/>
  19. <field name="id_pedido" class="java.lang.Long"/>
  20. <field name="id_cliente" class="java.lang.Integer"/>
  21. <field name="id_ruta" class="java.lang.Integer"/>
  22. <background>
  23. <band splitType="Stretch"/>
  24. </background>
  25. <title>
  26. <band height="79" splitType="Stretch">
  27. <frame>
  28. <reportElement mode="Opaque" x="0" y="16" width="555" height="44" backcolor="#FF0033" />
  29. <textField>
  30. <reportElement x="65" y="13" width="100" height="20" forecolor="#000000" />
  31. <textElement>
  32. <font size="14" isBold="true"/>
  33. </textElement>
  34. <textFieldExpression><![CDATA[$F{id_ruta}]]></textFieldExpression>
  35. </textField>
  36. <staticText>
  37. <reportElement x="15" y="13" width="50" height="20" />
  38. <textElement>
  39. <font size="14" isBold="true"/>
  40. </textElement>
  41. <text><![CDATA[RUTA :]]></text>
  42. </staticText>
  43. <textField>
  44. <reportElement x="328" y="13" width="213" height="20" />
  45. <textElement>
  46. <font size="14" isBold="true"/>
  47. </textElement>
  48. <textFieldExpression><![CDATA[$F{fecha_servicio}]]></textFieldExpression>
  49. </textField>
  50. <staticText>
  51. <reportElement x="176" y="13" width="131" height="20" />
  52. <textElement>
  53. <font size="14" isBold="true"/>
  54. </textElement>
  55. <text><![CDATA[FECHA SERVICIO :]]></text>
  56. </staticText>
  57. </frame>
  58. </band>
  59. </title>
  60. <detail>
  61. <band height="414" splitType="Stretch">
  62. <subreport>
  63. <reportElement x="0" y="314" width="200" height="100" />
  64. <subreportParameter name="ID_PEDIDO">
  65. <subreportParameterExpression><![CDATA[$F{id_cliente}]]></subreportParameterExpression>
  66. </subreportParameter>
  67. <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
  68. <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "SubinformePedidos.jasper"]]></subreportExpression>
  69. </subreport>
  70. <subreport>
  71. <reportElement x="0" y="53" width="200" height="100" />
  72. <subreportParameter name="ID_CLIENTE">
  73. <subreportParameterExpression><![CDATA[$F{id_cliente}]]></subreportParameterExpression>
  74. </subreportParameter>
  75. <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
  76. <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "SubinformeCliente.jasper"]]></subreportExpression>
  77. </subreport>
  78. <staticText>
  79. <reportElement x="0" y="2" width="100" height="20" />
  80. <text><![CDATA[id_empleado]]></text>
  81. </staticText>
  82. <textField>
  83. <reportElement x="100" y="2" width="100" height="20" />
  84. <textFieldExpression><![CDATA[$F{id_empleado}]]></textFieldExpression>
  85. </textField>
  86. <staticText>
  87. <reportElement x="0" y="22" width="100" height="20" />
  88. <text><![CDATA[id_barrio]]></text>
  89. </staticText>
  90. <textField>
  91. <reportElement x="100" y="22" width="100" height="20" />
  92. <textFieldExpression><![CDATA[$F{id_barrio}]]></textFieldExpression>
  93. </textField>
  94. <staticText>
  95. <reportElement x="0" y="203" width="100" height="20" />
  96. <textElement>
  97. <font size="14" isBold="true"/>
  98. </textElement>
  99. <text><![CDATA[total_importe]]></text>
  100. </staticText>
  101. <textField>
  102. <reportElement x="100" y="203" width="100" height="20" forecolor="#FF3366" />
  103. <textElement>
  104. <font size="14"/>
  105. </textElement>
  106. <textFieldExpression><![CDATA[$F{total_importe}]]></textFieldExpression>
  107. </textField>
  108. </band>
  109. </detail>
  110. </jasperReport>
  111.  


Y éste es el código Java desde donde invoco al informe:

Código
  1. private void imprimirRutas(String mensajeEntrada){
  2.        //Primero he de averiguar la fecha de la ruta
  3.        int indicePrimero = mensajeEntrada.indexOf("$");
  4.        String fechaServicio = mensajeEntrada.substring(indicePrimero+1, mensajeEntrada.length());
  5.        //Ruta del archivo jasper
  6.        String path = "./InformeRutas.jasper";
  7.        JasperReport reporte;      
  8.        try{
  9.            reporte = JasperCompileManager.compileReport("./src/servidor/InformeRutas.jrxml");
  10.            //Cargo parámetros en una tabla hash
  11.            Map parametros = new HashMap();
  12.            parametros.put("FECHA_SERVICIO", fechaServicio);
  13.            //Genero el informe en memoria
  14.            JasperPrint print =
  15.                    JasperFillManager.fillReport(reporte,parametros,conn);
  16.            //Exporto el informe a PDF
  17.            JasperExportManager.exportReportToPdfFile(print,"informe.pdf");
  18.            //Abro el archivo pdf generado
  19.          File direccion = new File("informe.pdf");
  20.          Desktop.getDesktop().open(direccion);
  21.  
  22.        }catch(Exception e){
  23.            System.out.println("Error al producir informe: "+e);
  24.        }
  25.    }
  26.  


« Última modificación: 15 Diciembre 2014, 17:47 pm por Pantera80 » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.813



Ver Perfil
Re: Problema con iReport
« Respuesta #1 en: 15 Diciembre 2014, 16:06 pm »

No tengo ni idea de Java, pero el error es self-explanatory (se explica por si solo).
 
Debes convertir los DataTypes de esos valores a String antes de generar el reporte. El compiler solo te está diciendo la verdad, que no puede tratar un DataType de tipo "X" como si fuese de tipo String.

Supongo que es algo que podrás configurar en los miembros del objeto "reporte", o al instanciar la tabla hash, o en la configuración del xml:
Citar
Código
  1. <field name="id_empleado" class="java.lang.Integer"/>
  2. <field name="id_barrio" class="java.lang.Integer"/>
  3. <field name="fecha_servicio" class="java.sql.Date"/>
  4. <field name="total_importe" class="java.math.BigDecimal"/>
  5. <field name="id_pedido" class="java.lang.Long"/>
  6. <field name="id_cliente" class="java.lang.Integer"/>
  7. <field name="id_ruta" class="java.lang.Integer"/>

De todas formas, ¿te has parado a preguntar donde debes preguntar?:
https://community.jaspersoft.com/answers

Saludos.


« Última modificación: 15 Diciembre 2014, 16:09 pm por Eleкtro » En línea

Pantera80

Desconectado Desconectado

Mensajes: 17



Ver Perfil
Re: Problema con iReport
« Respuesta #2 en: 15 Diciembre 2014, 17:47 pm »

Gracias por responder, Elektro.

He mirado en la dirección que me has puesto, y después de investigar he descubierto que el informe lo había realizado con la versión 5.5.0 de iReport, pero las librerías que he adjuntado a mi proyecto eran más antiguas, aquí estaba el error.

Un saludo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Java, iReport, JasperReports
Java
S@DMAN 0 4,196 Último mensaje 5 Abril 2005, 04:42 am
por S@DMAN
Ireport error
Java
mapers 1 3,117 Último mensaje 8 Marzo 2014, 16:48 pm
por Mitsug
Agrupando en ireport
Java
marc85 0 1,343 Último mensaje 14 Abril 2014, 18:30 pm
por marc85
MOVIDO: Problema con iReport
Programación General
Eleкtro 0 1,431 Último mensaje 15 Diciembre 2014, 16:06 pm
por Eleкtro
| Ayuda | - | Problema Con Tablas En iReport |
Java
JADP 1 2,424 Último mensaje 31 Marzo 2015, 01:07 am
por Valkyr
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines