Intenta comprender el código correctamente previamente a adaptarlo a tu proyecto si tdeseas aportar algo puedes dejarlo en los comentarios.
Solución:
- Las rutas deben ser absolutas.
- solo compilar
.jrxml
archivos a.jasper
archivos si el.jrxml
está siendo modificado. Por lo general, solo puede cargar el.jasper
archivar y omitir la compilación por completo. Es mucho más rápido. - Tienda
.jasper
y.jrxml
archivos fuera de su raíz web. - Cree los siguientes parámetros en todos sus informes:
ROOT_DIR = "/full/path/to/reports/" IMAGE_DIR = $PROOT_DIR + "images/" STYLES_DIR = $PROOT_DIR + "styles/" SUBREPORT_DIR = $PROOT_DIR + "subreports/" COMMON_DIR = $PROOT_DIR + "common/"
- Elementos de referencia relativos a
$PROOT_DIR
(p.ej,$PIMAGE_DIR
se define en términos de$PROOT_DIR
). - Pasar el valor de
$PROOT_DIR
desde su entorno. - Acople libremente su aplicación a cualquier marco de informes que utilice.
Luego use las expresiones cuando sea necesario. Por ejemplo, haga referencia a los subinformes de la siguiente manera:
Esto permitirá que el directorio del subinforme varíe entre entornos.
Tuve el mismo problema, y obtuve la solución. Primero, coloque cada objeto (subinforme, imagen, etc.) utilizado en el informe y todas las extensiones (.jasper, .jrxml) en una carpeta y coloque esa carpeta en el disco C://. Probablemente ahora esté ubicado en algún lugar de Mis documentos, o en cualquier ruta que tenga espacios entre palabras, y luego iReport lo ve como “Mis% 20 documentos” y lo confunde.
Entonces, coloque la carpeta en C://, coloque todo lo relacionado con su informe en la misma carpeta y coloque rutas relativas a todo. Esto debería funcionar. Espero haber ayudado a alguien.