Ciao a tutti.
Chiedo gentilmente una mano per capire come mai la mia insulsa java class non riesca a riempire un altrettanto insulso report prelevando i dati da un file xml.
Parto proprio da quest'ultimo che posto per farne capire la struttura.
File fatt_xml_es.xml
Utilizzando questo come datasource creo con iReport il file .jrxml e quindi lo compilo a .jasper. Nell'anteprima il risultato finale viene correttamente compilato.codice:<?xml version="1.0" encoding="UTF-8" ?> <fattura> <meta> <id_fattura>1/2014</id_fattura> <id_cliente>001</id_cliente> </meta> <cliente> <rag_sociale></rag_sociale> <cognome>Cognome</cognome> <nome>Nome</nome> <indirizzo>indirizzo</indirizzo> <cap>00000</cap> <citta>Città</citta> <provincia>**</provincia> <cod_fiscale>XXXXXXXXXXXXXXXXX</cod_fiscale> <p_iva></p_iva> </cliente> <prestazioni> <prestazione> <descrizione>Articolo 1</descrizione> <importo>35 €</importo> <quantita>1</quantita> <al_iva>22%</al_iva> </prestazione> <prestazione> <descrizione>Articolo 2</descrizione> <importo>5 €</importo> <quantita>1</quantita> <al_iva>22%</al_iva> </prestazione> </prestazioni> <totali> <onorario>xx €</onorario> <imponibile>yy €</imponibile> <iva> ww €</iva> <tot_fattura>jj €</tot_fattura> </totali> </fattura>
Posto il file .jrxml
Infine posto la mia java class che prendendo il file .jasper compilato da iReport dovrebbe creare un pdf finale.codice:<?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" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="8e2812ca-ba43-4832-8e07-9f2d083bc044"> <property name="ireport.zoom" value="1.0"/> <property name="ireport.x" value="0"/> <property name="ireport.y" value="0"/> <queryString language="xPath"> <![CDATA[/fattura/prestazioni/prestazione]]> </queryString> <field name="descrizione" class="java.lang.String"> <fieldDescription><![CDATA[descrizione]]></fieldDescription> </field> <field name="importo" class="java.lang.String"> <fieldDescription><![CDATA[importo]]></fieldDescription> </field> <field name="quantita" class="java.lang.String"> <fieldDescription><![CDATA[quantita]]></fieldDescription> </field> <field name="al_iva" class="java.lang.String"> <fieldDescription><![CDATA[al_iva]]></fieldDescription> </field> <background> <band splitType="Stretch"/> </background> <title> <band height="79" splitType="Stretch"/> </title> <pageHeader> <band height="35" splitType="Stretch"/> </pageHeader> <columnHeader> <band height="61" splitType="Stretch"> <staticText> <reportElement x="0" y="0" width="138" height="20" uuid="af0fcd3d-7cd7-4e3d-8fed-a1e4680245e6"/> <text><![CDATA[descrizione]]></text> </staticText> <staticText> <reportElement x="138" y="0" width="138" height="20" uuid="f2fb8dac-eaf9-49a0-8e64-1fec91ae5d79"/> <text><![CDATA[importo]]></text> </staticText> <staticText> <reportElement x="276" y="0" width="138" height="20" uuid="0e89c16e-da93-43da-b60e-3be4b87df3fc"/> <text><![CDATA[quantita]]></text> </staticText> <staticText> <reportElement x="414" y="0" width="138" height="20" uuid="5dfe01b8-9a19-4396-8e30-e4135b52ea37"/> <text><![CDATA[al_iva]]></text> </staticText> </band> </columnHeader> <detail> <band height="125" splitType="Stretch"> <textField> <reportElement x="0" y="0" width="138" height="20" uuid="bdc32fd0-b572-4c49-b22f-efa7923f1f51"/> <textFieldExpression><![CDATA[$F{descrizione}]]></textFieldExpression> </textField> <textField> <reportElement x="138" y="0" width="138" height="20" uuid="e9aaf092-81ad-457a-8f3d-0efda6f13232"/> <textFieldExpression><![CDATA[$F{importo}]]></textFieldExpression> </textField> <textField> <reportElement x="276" y="0" width="138" height="20" uuid="6e57e4e5-d8fd-478c-b2d1-4e2f87dc48c9"/> <textFieldExpression><![CDATA[$F{quantita}]]></textFieldExpression> </textField> <textField> <reportElement x="414" y="0" width="138" height="20" uuid="7d8f70e8-6aec-4ad0-b161-ec144623fad9"/> <textFieldExpression><![CDATA[$F{al_iva}]]></textFieldExpression> </textField> </band> </detail> <columnFooter> <band height="45" splitType="Stretch"/> </columnFooter> <pageFooter> <band height="54" splitType="Stretch"/> </pageFooter> <summary> <band height="42" splitType="Stretch"/> </summary> </jasperReport>
Invece il risultante file pdf come risultato della query mostra scritto "null" in corrispondenza di tutte le colonnecodice:import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.util.HashMap; import java.util.Map; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JRExporterParameter; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.data.JRXmlDataSource; import net.sf.jasperreports.engine.export.JRPdfExporter; import net.sf.jasperreports.engine.util.JRLoader; public class Fatturazione { public static void main(String[] args) { // TODO Auto-generated method stub JasperReport jasperReport = null; File xml_file = null; JRXmlDataSource dataSource = null; JasperPrint jasperPrint = null; try { jasperReport = (JasperReport)JRLoader.loadObject(new File("report/report.jasper")); Map <String, Object> param = new HashMap<String, Object>(); param.put("reportTitle", "User Report"); xml_file = new File("datasource/fatt_xml_es.xml"); dataSource = new JRXmlDataSource(xml_file); jasperPrint = JasperFillManager.fillReport(jasperReport, param, dataSource); JasperExportManager.exportReportToPdfFile(jasperPrint, "report/report.pdf"); } catch (JRException e) { e.printStackTrace(); } } }. Nonostante tutti i tentativi e le ore passate su google non sono riuscito a venire a capo del problema anche perché nella compilazione non viene dato nessun problema né errore
.
Qualcuno sarebbe così gentile da suggerirmi quale possa essere il nodo della questione?
Ringraziandovi tutti per l'aiuto vi saluto.
Ciao
Matteo

. Nonostante tutti i tentativi e le ore passate su google non sono riuscito a venire a capo del problema anche perché nella compilazione non viene dato nessun problema né errore
.
Rispondi quotando