Para el manejo de los reportes he creado un paquete llamado reportes en el se guardaran el .jasper y el .jxml de cada reporte que realice.
Para "invocar" al reporte utilizo estas líneas de código.
Código:
try
{
String master = System.getProperty("user.dir") +"\\src\\reportes\\factura.jasper";
if (master == null)
{
System.out.println("No encuentro el archivo del reporte maestro.");
System.exit(2);
}
JasperReport masterReport = null;
try
{
masterReport = (JasperReport) JRLoader.loadObject(master);
}
catch (JRException e)
{
System.out.println("Error cargando el reporte maestro: " + e.getMessage());
System.exit(3);
}
Funciona perfectamente desde el Entorno de desarrollo ; pero cuando creo el jar, existen problemas con la ruta, ya que el //scr// no queda en el jar.
La Solución que se me ocurre es cuando valla a generar el jar eliminar el //scr// y mientras desarrolle dejarlo; pero pues no es algo muy optimo.. entonces espero me puedan ayudar a solucionar este problemita; saber tal vez como utilizar una ruta relativa que funcione en los dos casos.