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
<?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>
Y éste es el código Java desde donde invoco al informe:
Código
//Primero he de averiguar la fecha de la ruta int indicePrimero = mensajeEntrada.indexOf("$"); //Ruta del archivo jasper JasperReport reporte; try{ reporte = JasperCompileManager.compileReport("./src/servidor/InformeRutas.jrxml"); //Cargo parámetros en una tabla hash 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 Desktop.getDesktop().open(direccion); } }