Problemas con JFreeReport
Hola a todos!!
Estoy haciendo un reporte con JFreeReport, utilizando xml.
Quiero poner el logo de la empresa en el reporte y sigo los pasos que está en el tutorial proporcionado y me está dando este error:
A parent template must be specified [Location: Line=297 Column=39] [Location: Line=-1 Column=-1]
Les mando el código:
protected void attemptPreview() {
try{
String dir = null;
String urlImagen = null;
String SistOperativo = System.getProperty("os.name");
if (SistOperativo.equals("Linux")){
dir = "xml_pago_productores.xml";
urlImagen = "logo_valle_sauce.gif";
}else{
dir = "C:\\Modulo_Java_2\\Reporte\\xml_pago_productores.xml";
urlImagen = "C:\\Modulo_Java_2\\Utiles\\Imagenes\\logo_valle_sauce.gif";
}
final URL camino = getClass().getResource(dir);
final TablaModelDeuda data = crearTabla();
final JFreeReport reporte;
reporte = this.parseReport(camino);
reporte.setData(data);
final URL imageURL = getClass().getResource(urlImagen);
final Image image = Toolkit.getDefaultToolkit().createImage(imageURL);
final WaitingImageObserver obs = new WaitingImageObserver(image);
obs.waitImageLoaded();
reporte.setProperty("logo", image);
reporte.setPropertyMarked("logo", true);
final PreviewDialog preview = new PreviewDialog(reporte);
preview.getBase().setToolbarFloatable(true);
preview.pack();
RefineryUtilities.positionFrameRandomly(preview);
preview.setVisible(true);
preview.requestFocus();
}
catch (ReportProcessingException e){
System.out.println("Error: ReportProcessingException: Pago_Productores \n" + e.getMessage());
}
catch(Exception e3){
System.out.println("Error: Exception: Pago_Productores \n" + e3.getMessage());
}
}
private JFreeReport parseReport(final URL caminito) throws ReporteExcepciones{
JFreeReport reporte = null;
try{
final ReportGenerator generator = ReportGenerator.getInstance();
reporte = generator.parseReport(caminito);
}
catch(IOException e){
throw new ReporteExcepciones("Error: IOException: parseReport pago productores \n"
+ e.getMessage());
}
catch(ElementDefinitionException e1){
String mensaje = "Error: ElementDefinitionException: pago productores \n" + e1.getMessage();
throw new ReporteExcepciones(mensaje);
}
catch(Exception e2){
String mensaje1 = "Error: Exception: pago productores \n" + e2.getMessage();
throw new ReporteExcepciones(mensaje1);
}
return reporte;
}
La perte del xml que llamo a la imagen, está ubicado dentro de <groups>
<group> </group>
</groups>:
<element type="image/generic">
<style>
<compound-key name="absolute_pos" class="java.awt.geom.Point2D$Float">
<basic-object name="x">0.0</basic-object>
<basic-object name="y">0.0</basic-object>
</compound-key>
<compound-key name="min-size" class="com.jrefinery.report.targets.FloatDimension">
<basic-object name="height" class="java.lang.Double">100.0</basic-object>
<basic-object name="width" class="java.lang.Double">150.0</basic-object>
</compound-key>
<basic-key name="keepAspectRatio">false</basic-key>
<basic-key name="dynamic_height">false</basic-key>
<basic-key name="scale">true</basic-key>
<basic-key name="paint">black</basic-key>
</style>
<template reference="image-field" fieldname="logo"/>
</element>
Si alguien me puede ayudar, mil gracias!!!!
Saludos
Mariana
Estoy haciendo un reporte con JFreeReport, utilizando xml.
Quiero poner el logo de la empresa en el reporte y sigo los pasos que está en el tutorial proporcionado y me está dando este error:
A parent template must be specified [Location: Line=297 Column=39] [Location: Line=-1 Column=-1]
Les mando el código:
protected void attemptPreview() {
try{
String dir = null;
String urlImagen = null;
String SistOperativo = System.getProperty("os.name");
if (SistOperativo.equals("Linux")){
dir = "xml_pago_productores.xml";
urlImagen = "logo_valle_sauce.gif";
}else{
dir = "C:\\Modulo_Java_2\\Reporte\\xml_pago_productores.xml";
urlImagen = "C:\\Modulo_Java_2\\Utiles\\Imagenes\\logo_valle_sauce.gif";
}
final URL camino = getClass().getResource(dir);
final TablaModelDeuda data = crearTabla();
final JFreeReport reporte;
reporte = this.parseReport(camino);
reporte.setData(data);
final URL imageURL = getClass().getResource(urlImagen);
final Image image = Toolkit.getDefaultToolkit().createImage(imageURL);
final WaitingImageObserver obs = new WaitingImageObserver(image);
obs.waitImageLoaded();
reporte.setProperty("logo", image);
reporte.setPropertyMarked("logo", true);
final PreviewDialog preview = new PreviewDialog(reporte);
preview.getBase().setToolbarFloatable(true);
preview.pack();
RefineryUtilities.positionFrameRandomly(preview);
preview.setVisible(true);
preview.requestFocus();
}
catch (ReportProcessingException e){
System.out.println("Error: ReportProcessingException: Pago_Productores \n" + e.getMessage());
}
catch(Exception e3){
System.out.println("Error: Exception: Pago_Productores \n" + e3.getMessage());
}
}
private JFreeReport parseReport(final URL caminito) throws ReporteExcepciones{
JFreeReport reporte = null;
try{
final ReportGenerator generator = ReportGenerator.getInstance();
reporte = generator.parseReport(caminito);
}
catch(IOException e){
throw new ReporteExcepciones("Error: IOException: parseReport pago productores \n"
+ e.getMessage());
}
catch(ElementDefinitionException e1){
String mensaje = "Error: ElementDefinitionException: pago productores \n" + e1.getMessage();
throw new ReporteExcepciones(mensaje);
}
catch(Exception e2){
String mensaje1 = "Error: Exception: pago productores \n" + e2.getMessage();
throw new ReporteExcepciones(mensaje1);
}
return reporte;
}
La perte del xml que llamo a la imagen, está ubicado dentro de <groups>
<group> </group>
</groups>:
<element type="image/generic">
<style>
<compound-key name="absolute_pos" class="java.awt.geom.Point2D$Float">
<basic-object name="x">0.0</basic-object>
<basic-object name="y">0.0</basic-object>
</compound-key>
<compound-key name="min-size" class="com.jrefinery.report.targets.FloatDimension">
<basic-object name="height" class="java.lang.Double">100.0</basic-object>
<basic-object name="width" class="java.lang.Double">150.0</basic-object>
</compound-key>
<basic-key name="keepAspectRatio">false</basic-key>
<basic-key name="dynamic_height">false</basic-key>
<basic-key name="scale">true</basic-key>
<basic-key name="paint">black</basic-key>
</style>
<template reference="image-field" fieldname="logo"/>
</element>
Si alguien me puede ayudar, mil gracias!!!!
Saludos
Mariana