Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Problema con iReport en Java

Estas en el tema de Problema con iReport en Java en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/12/2014, 05:10
Avatar de Pantera80  
Fecha de Ingreso: noviembre-2014
Ubicación: España
Mensajes: 35
Antigüedad: 9 años, 5 meses
Puntos: 6
Pregunta Problema con iReport en Java

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 HTML:
<?xml version="1.0" encoding="UTF-8"?>
<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" >
 <property name="ireport.zoom" value="1.0"/>
 <property name="ireport.x" value="0"/>
 <property name="ireport.y" value="0"/>
 <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
  <defaultValueExpression><![CDATA["C:\\Juanan\\Proyecto\\Aplicación\\Cliente\\src\\cliente\\"]]></defaultValueExpression>
 </parameter>
 <parameter name="FECHA_SERVICIO" class="java.sql.Date">
  <defaultValueExpression><![CDATA[]]></defaultValueExpression>
 </parameter>
 <queryString>
  <![CDATA[SELECT * FROM PEDIDO WHERE FECHA_SERVICIO = $P{FECHA_SERVICIO} ORDER BY ID_RUTA;]]>
 </queryString>
 <field name="id_empleado" class="java.lang.Integer"/>
 <field name="id_barrio" class="java.lang.Integer"/>
 <field name="fecha_servicio" class="java.sql.Date"/>
 <field name="total_importe" class="java.math.BigDecimal"/>
 <field name="id_pedido" class="java.lang.Long"/>
 <field name="id_cliente" class="java.lang.Integer"/>
 <field name="id_ruta" class="java.lang.Integer"/>
 <background>
  <band splitType="Stretch"/>
 </background>
 <title>
  <band height="79" splitType="Stretch">
   <frame>
    <reportElement mode="Opaque" x="0" y="16" width="555" height="44" backcolor="#FF0033" />
    <textField>
     <reportElement x="65" y="13" width="100" height="20" forecolor="#000000" />
     <textElement>
      <font size="14" isBold="true"/>
     </textElement>
     <textFieldExpression><![CDATA[$F{id_ruta}]]></textFieldExpression>
    </textField>
    <staticText>
     <reportElement x="15" y="13" width="50" height="20" />
     <textElement>
      <font size="14" isBold="true"/>
     </textElement>
     <text><![CDATA[RUTA :]]></text>
    </staticText>
    <textField>
     <reportElement x="328" y="13" width="213" height="20" />
     <textElement>
      <font size="14" isBold="true"/>
     </textElement>
     <textFieldExpression><![CDATA[$F{fecha_servicio}]]></textFieldExpression>
    </textField>
    <staticText>
     <reportElement x="176" y="13" width="131" height="20" />
     <textElement>
      <font size="14" isBold="true"/>
     </textElement>
     <text><![CDATA[FECHA SERVICIO :]]></text>
    </staticText>
   </frame>
  </band>
 </title>
 <detail>
  <band height="414" splitType="Stretch">
   <subreport>
    <reportElement x="0" y="314" width="200" height="100" />
    <subreportParameter name="ID_PEDIDO">
     <subreportParameterExpression><![CDATA[$F{id_cliente}]]></subreportParameterExpression>
    </subreportParameter>
    <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
    <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "SubinformePedidos.jasper"]]></subreportExpression>
   </subreport>
   <subreport>
    <reportElement x="0" y="53" width="200" height="100" />
    <subreportParameter name="ID_CLIENTE">
     <subreportParameterExpression><![CDATA[$F{id_cliente}]]></subreportParameterExpression>
    </subreportParameter>
    <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
    <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "SubinformeCliente.jasper"]]></subreportExpression>
   </subreport>
   <staticText>
    <reportElement x="0" y="2" width="100" height="20" />
    <text><![CDATA[id_empleado]]></text>
   </staticText>
   <textField>
    <reportElement x="100" y="2" width="100" height="20" />
    <textFieldExpression><![CDATA[$F{id_empleado}]]></textFieldExpression>
   </textField>
   <staticText>
    <reportElement x="0" y="22" width="100" height="20" />
    <text><![CDATA[id_barrio]]></text>
   </staticText>
   <textField>
    <reportElement x="100" y="22" width="100" height="20" />
    <textFieldExpression><![CDATA[$F{id_barrio}]]></textFieldExpression>
   </textField>
   <staticText>
    <reportElement x="0" y="203" width="100" height="20" />
    <textElement>
     <font size="14" isBold="true"/>
    </textElement>
    <text><![CDATA[total_importe]]></text>
   </staticText>
   <textField>
    <reportElement x="100" y="203" width="100" height="20" forecolor="#FF3366" />
    <textElement>
     <font size="14"/>
    </textElement>
    <textFieldExpression><![CDATA[$F{total_importe}]]></textFieldExpression>
   </textField>
  </band>
 </detail>
</jasperReport> 
  #2 (permalink)  
Antiguo 15/12/2014, 05:11
Avatar de Pantera80  
Fecha de Ingreso: noviembre-2014
Ubicación: España
Mensajes: 35
Antigüedad: 9 años, 5 meses
Puntos: 6
Respuesta: Problema con iReport en Java

Y éste es el código Java desde donde invoco al informe:
Código:
private void imprimirRutas(String mensajeEntrada){
        //Primero he de averiguar la fecha de la ruta
        int indicePrimero = mensajeEntrada.indexOf("$");
        String fechaServicio = mensajeEntrada.substring(indicePrimero+1, mensajeEntrada.length());
        //Ruta del archivo jasper
        String path = "./InformeRutas.jasper";
        JasperReport reporte;       
        try{
            reporte = JasperCompileManager.compileReport("./src/servidor/InformeRutas.jrxml");
            //Cargo parámetros en una tabla hash
            Map parametros = new HashMap();
            parametros.put("FECHA_SERVICIO", fechaServicio);
            //Genero el informe en memoria
            JasperPrint print = 
                    JasperFillManager.fillReport(reporte,parametros,conn);
            //Exporto el informe a PDF
            JasperExportManager.exportReportToPdfFile(print,"informe.pdf");
            //Abro el archivo pdf generado
          File direccion = new File("informe.pdf");
          Desktop.getDesktop().open(direccion);
            
        }catch(Exception e){
            System.out.println("Error al producir informe: "+e);
        }
    }
  #3 (permalink)  
Antiguo 15/12/2014, 10:44
Avatar de Pantera80  
Fecha de Ingreso: noviembre-2014
Ubicación: España
Mensajes: 35
Antigüedad: 9 años, 5 meses
Puntos: 6
Respuesta: Problema con iReport en Java

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

Etiquetas: ireport, netbeans, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:15.