Archivos XML para Jasper Reports. (SOLUCIONADO)

En estos momentos va todo bien, ya personalicé la Solicitud de Bienes y Servicios con iReport 5.5.0 pero no puedo encontrar los archivos .xml para cargar la prueba y hacer un Preview. Sigo la ruta que me indicaron y la que dice en el Manual de Instalación pero no hay caso, no los encuentro.

Carlos.

Carlos, para acceder a los XML primero es necesario ingresar a los reportes. Ya sea el motor configurado como XSL o como Jasper, cuando ingreses a un reporte recién en ese momento se crea dicho archivo XML y se almacena en diaguita/tmp/ireport. Si ingresás a distintas solicitudes, se van a identificar los archivos por sus nombres e ID respectivamente.

Saludos!

Accedo a los reportes desde el sistema, me muestra los PDF normalmente pero entro al servidor con Filezilla y en la locación /diaguita/aplicacion/temp/ireport/ encuentro nada más que el archivo diaguita_estilo.jrtx

No tengo idea si habremos hecho una instalación incorrecta o si estoy haciendo algo mal, la dirección completa a la que estoy accediendo para buscar los XML es /var/www/SIU-Diaguita-1.13.0/proyectos/diaguita/aplicacion/temp/ireport/

Un abrazo.

El archivo diaguita_estilo.jrtx no esta en esa ubicación… al menos no lo distribuimos ahí. ¿Puede que uds lo hayan copiado ahi?

Acá puede ser que estemos viendo el problema. Una instalación en producción de SIU-Diaguita no tiene la ruta proyectos en su ubicación!, por lo que deduzco que estas ingresando a la carpeta del instalador y no a la instalación de SIU-Diaguita que realizaron. Por favor, revisá con cuidado la ruta donde se realizó la instalación, la que debería ser algo similar a esto (no es obligatorio que así sea, solo es la recomendación por defecto):


/var/siu/diaguita/aplicacion/temp/ireport

Saludos!

Sí, el .jtrx lo copié yo por error en esa locación, estoy comunicándome con quien instaló Diaguita en el Servidor para que revise lo que se hizo.

Gracias, te voy a comentar lo que suceda.

Un abrazo. Carlos.

Por las dudas hice un movimiento dentro del servidor creando la ruta /var/siu/diaguita/aplicacion/temp/ireport (copiando todo el contenido de la ruta original /proyectos/SIU-Diaguita-1.13.0/diaguita/aplicacion/temp/ireport.

Después entré a dos salidas impresas y las ejecuté (Solicitud de Bienes y Servicios - Anexo), imprimí las salidas pero no conseguí generar los .XML (los busqué por toda la instalación con el rastreador del Filezilla) y no pasa nada. Mientras tanto, la persona que hizo la instalación está revisándola.

Si se te ocurre alguna prueba más que pueda hacer por favor decime.

Saludos !!

Carlos.

La ruta /var/siu/diaguita/aplicacion/temp/ireport lo comentaba a modo de ejemplo, pues depende exclusivamente de donde tengan instalado el sistema.

De cualquier forma, aparenta estar instalado el sistema /proyectos/SIU-Diaguita-1.13.0/ por lo que la ruta que proporcionas estaría bien.

Lo que te puedo decir es que si estas con el sistema, tiene que generarte los archivos XML y almacenarlo en el directorio ireport, por ejemplo de una solicitud con nùmero 10/2014 asi:

ci_ficha_solicitud_suministro(Solicitud_de_bienes_y_servicios_10-2014)

Si con todo esto no funciona, revisen los logs del apache, es probable que no tenga php permisos de escritura en el sistema de archivos, para poder crear los XML.

Voy a revisar los logs, porque genero normalmente las salidas, las veo y las imprimo y mis usuarios también pero no se generan los .XML, de todas maneras :

!! Muchas Gracias ¡¡

Por fin encontré donde se están generando los .XML, pero no consigo que lo tome el iReport 5.5.0 como datasource. Te mando el código de uno de los archivos para ver si es correcto :

<?xml version="1.0"?>

<candidatos_comision/><documentos_adjuntos/><items_solicitados><items_areas></items_areas></items_solicitados><proveedor_sugerido/><trans_solicitudes/><datos_anexos INSTITUCION=“FACULTAD DE MEDICINA U.B.A.” LOGO_INSTITUCION=“/usr/local/siu/diaguita/aplicacion/www/img/logofmed.jpg” PATH_DIR_TEMP=“/usr/local/siu/diaguita/aplicacion/www/temp/” FECHA_ACTUAL=“28/03/2014” FECHA_ACTUAL_LARGA=“28 de Marzo de 2014” xsl_archivo_plantilla=“solicitud_suministro_anexo”/>

Un abrazo. Carlos.

Lo que me extraña es que los archivos generados no tienen extensión, el .XML se lo puse yo con un editor.

Carlos.

Carlos, bien vamos avanzando!

los archivos si bien son XML formados, no tienen la extensión por un descuido al desarrollarlos inicialmente. No afecta en gran medida pues no se requiere editarlos. De cualquier forma, estos archivos contienen los datos para los reportes pero no el diseño del reporte. El diseño lo vas a tener en el directorio aplicacion/jasper de tu instalación, organizado por etapas y fichas (son los archivos con extensión .jrxml). En el caso del XML de datos que enviaste, corresponde al “ver anexo” de la Solicitud de Bienes y Servicios y al archivo físico de jasper solicitud_suministro_anexo.jrxml.

Usando el XML que pasaste, lo levante con iReport y generé el PDF que adjunto, le faltan las imágenes pero es porque mi copia no las tiene al ser datos de tu instalación de SIU-Diaguita. Que problema estas teniendo para configurar el dataSource?

Saludos!!

PD: CUIDADO con la versión del iReport, tiene que ser la misma que las librerías de JasperReports, y nosotros recomendamos usar la 5.1.


solicitud_suministro_anexo.pdf (28.1 KB)

Ahora bajé la versión 5.1.0 de iReport y la instalé. Abro el archivo “solicitud_suministro_anexo.jrml” sin problemas, genero un Datasource “Prueba”, con “datasource type : XML datasource type”. Cargo el datasource con “solicitud_suministro_anexo(Solicitud_suministro_anexo_34-2014).xml”. Hago un Test que me dice que es exitoso.

Cuando vuelvo a la pantalla principal y genero un Preview, compila y me tira el siguiente error :

Error filling print… Byte data not found at : …/diaguita_estilo.jrtx
net.sf.jasperreports.engine.JRException: Byte data not found at : …/diaguita_estilo.jrtx at net.sf.jasperreports.repo.RepositoryUtil.getBytesFromLocation(RepositoryUtil.java:324) at net.sf.jasperreports.engine.xml.JRXmlTemplateLoader.loadTemplate(JRXmlTemplateLoader.java:110) at net.sf.jasperreports.engine.fill.JRFillReportTemplate.loadTemplate(JRFillReportTemplate.java:109) at net.sf.jasperreports.engine.fill.JRFillReportTemplate.evaluate(JRFillReportTemplate.java:87) at net.sf.jasperreports.engine.fill.JRBaseFiller.collectTemplates(JRBaseFiller.java:1058) at net.sf.jasperreports.engine.fill.JRBaseFiller.collectTemplateStyles(JRBaseFiller.java:1081) at net.sf.jasperreports.engine.fill.JRBaseFiller.collectStyles(JRBaseFiller.java:1029) at net.sf.jasperreports.engine.fill.JRBaseFiller.loadStyles(JRBaseFiller.java:998) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:879) at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:126) at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:464) at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:300) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:757) at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:1003) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)
Print not filled. Try to use an EmptyDataSource…

Hola Carlos,

Fijate que siempre iReport te va a mostar en la primera línea el error (excepto en casos donde el error esta en el medio y precedido por caused by, que no son pocos :p). En este caso particular, indica que no puede encotrar el archivo diaguita_estilo.jrxt.

Como sugerencia, te puedo decir que busques de trabajar como está ubicado siempre el directorio donde residen en SIU-Diaguita las salidas, jasper, que cuenta con ese archivo diaguita_estilo.jrxt. O sea, copiando todo el directorio jasper en tu pc local y editando los archivos que necesites. Luego, subirás al directorio personalización/jasper la ficha para la cual se hizo los cambios.

Espero se entienda, saludos!

Salió andando por fin. Ahora estoy personalizando el Pliego y voy a hacer una prueba de ponerlo operativo. Cualquier problema te digo.

Muchísimas gracias.

Carlos.

Buenas, soy nueva en esto y estoy teniendo problemas con la entrada de datos por xml. Estoy trabajando con ireport 5.1 en windows, y los archivos xml que se encuentran en /var/eldiaguita/diaguita/aplicacion/temp/ireport se encuentran en el servidor. No logro transferirlos a traves SSH Secure File Transfer Client como tales. Lo que hice fue copiar el contenido de uno de los archivos.xml del servidor a un archivo nuevo con extensión xml en windows y seleccionarlo como datasource en el ireport. Pero se ve que no tomó bien la estructura del archivo y por esa razón me esta tirando el siguiente error :

Error filling print… java.lang.NoClassDefFoundError: org/apache/xpath/CachedXPathAPI null
java.lang.NoClassDefFoundError: org/apache/xpath/CachedXPathAPI at net.sf.jasperreports.engine.util.xml.XalanXPathExecuter.(XalanXPathExecuter.java:45) at net.sf.jasperreports.engine.util.xml.XalanXPathExecuterFactory.getXPathExecuter(XalanXPathExecuterFactory.java:39) at net.sf.jasperreports.engine.util.xml.JRXPathExecuterUtils.getXPathExecuter(JRXPathExecuterUtils.java:97) at net.sf.jasperreports.engine.data.JRXmlDataSource.(JRXmlDataSource.java:187) at net.sf.jasperreports.engine.query.JRXPathQueryExecuter.createDatasource(JRXPathQueryExecuter.java:113) at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1087) at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:668) at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1258) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:877) at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:126) at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:464) at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:300) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:757) at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:1003) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

Tal vez sea otro el problema, la cuestión es que estoy trabada con eso, espero haber sido clara y que alguien pueda ayudarme.
Desde ya, gracias!
Saludos.
Lucía.

Ahora me da el siguiente error:

Error filling print… XPath compilation failed. Expression:
net.sf.jasperreports.engine.JRException: XPath compilation failed. Expression: at net.sf.jasperreports.engine.util.xml.JaxenXPathExecuter.getXPath(JaxenXPathExecuter.java:66) at net.sf.jasperreports.engine.util.xml.JaxenXPathExecuter.selectNodeList(JaxenXPathExecuter.java:77) at net.sf.jasperreports.engine.data.JRXmlDataSource.moveFirst(JRXmlDataSource.java:415) at net.sf.jasperreports.engine.data.JRXmlDataSource.(JRXmlDataSource.java:189) at net.sf.jasperreports.engine.query.JRXPathQueryExecuter.createDatasource(JRXPathQueryExecuter.java:113) at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1087) at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:668) at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1258) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:877) at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:126) at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:464) at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:300) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:757) at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:1003) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997) Caused by: org.jaxen.XPathSyntaxException: Unexpected ‘’ at org.jaxen.BaseXPath.(BaseXPath.java:118) at org.jaxen.BaseXPath.(BaseXPath.java:139) at org.jaxen.dom.DOMXPath.(DOMXPath.java:87) at net.sf.jasperreports.engine.util.xml.JaxenXPathExecuter.getXPath(JaxenXPathExecuter.java:62) … 15 more Caused by: class org.jaxen.saxpath.XPathSyntaxException: : 0: Unexpected ‘’ at org.jaxen.saxpath.base.XPathReader.createSyntaxException(XPathReader.java:1084) at org.jaxen.saxpath.base.XPathReader.pathExpr(XPathReader.java:190) at org.jaxen.saxpath.base.XPathReader.unionExpr(XPathReader.java:1006) at org.jaxen.saxpath.base.XPathReader.unaryExpr(XPathReader.java:994) at org.jaxen.saxpath.base.XPathReader.multiplicativeExpr(XPathReader.java:943) at org.jaxen.saxpath.base.XPathReader.additiveExpr(XPathReader.java:913) at org.jaxen.saxpath.base.XPathReader.relationalExpr(XPathReader.java:860) at org.jaxen.saxpath.base.XPathReader.equalityExpr(XPathReader.java:829) at org.jaxen.saxpath.base.XPathReader.andExpr(XPathReader.java:809) at org.jaxen.saxpath.base.XPathReader.orExpr(XPathReader.java:787) at org.jaxen.saxpath.base.XPathReader.expr(XPathReader.java:780) at org.jaxen.saxpath.base.XPathReader.parse(XPathReader.java:100) at org.jaxen.BaseXPath.(BaseXPath.java:113) … 18 more

Entiendo que es error de sintáxis pero no se donde se estaría dando, revise el xml que cree yo pero no logro darme cuenta.
Saludos.
Lucía.

Hola Lucía,

Antes que nada, no dudes en iniciar un nuevo post en el foro para acercar tu inquietud y tratarla de manera independiente. De cualquier forma, te intento contestar los inconvenientes que has encontrado:

1- se debería poder copiar los archivos de datos del servidor, si es que pudieron accederlos para ver su contenido. Tiene que funcionar.

2- el error que se ve en las dos respuestas, apunta claramente a un problema de inicialización del datasource u origen de datos: esto es, no puede leer la estructura XML por medio de XPATH. Debe existir algún error al realizar el copiado de datos o el encoding de los mismos está jugando una mala pasada.

En ambos casos, la solución es que puedan copiar correctamente los XML de datos alojados en el directorio diaguita/temp/ireport hacia el equipo de desarrollo. Mas no puedo ayudar porque es un tema técnico de acceso que a lo sumo lo debe manejar/resolver el sysadmin de su universidad.

Saludos!

Buenas! Gracias por tu respuesta Sergio. Logré que me compilará y funcionará el reporte que está en este post más arriba (solicitud de bienes y servicios). Lo que me estaba faltando era el archivo jrxml correspondiente :S. Ahora bien, tomando otro como ejemplo y siguiendo los mismos pasos, me compila, no me muestra errores pero los campos en el reporte generado aparecen como nulos… a qué podría deberse esto?
Disculpa las molestias y gracias nuevamente.
Saludos.
Lucía.

Ya lo pude solucionar! Gracias igual y disculpa las molestias!
Saludos.
Lucía