Reporting (iReport) without datasource (Empty Report)


This time I will show you. how to run a report without any datasource from iReport, Basically this type of reporting allow us to display a template file (JASPER) in jasperViewer, using the JREmptyDataSource() class. The java source for the execution of such reports would be as follows:

/**
*
* @author
* Javier Dominguez Geniz
* http://ajdgeniz.wordpress.com
*/
import net.sf.jasperreports.engine.*;
import java.util.*;
import net.sf.jasperreports.view.JRViewer.*;
import net.sf.jasperreports.view.*;

public class JasperTest {

public static void main(String[] args) {
//Filename of the report (jasper file)
String fileName = “ao.jasper”;

HashMap param = new HashMap();
try {

//Fill the report with an empty data source
/*jasper filename, parameter(hash map) and JREmptyDataSource */

JasperPrint print = JasperFillManager.fillReport(fileName, param, new JREmptyDataSource());

//launching jasperviewer
JasperViewer jviewer = new JasperViewer(print,false);

//Ser the jasperviewer title
jviewer.setTitle(“Reporting with empty datasource – http://ajdgeniz.wordpress.com”);
jviewer.setVisible(true);

} catch (JRException e) {
e.printStackTrace();
System.exit(1);
}
}
}

DOWN SOURCE(Empty Report)

Respuestas

  1. Hola a todos, tengo un problema, quiero hacer un reporte desde, pero ese reporte se tiene que cambiar la configuracion xml del connection

    o sea la bd, user, password, server y mas. pa lo cual el informe tiene q ser elaborado por un archivo xml que tenga esa configuracion mas q contenga la base de datos con las tabla y/o campos a mostrar en el reporte, ,, ayuda por favor si alguien sabe como hacerlo…

    • Podrias ser un poco mas explicito como tienes que haccer tu reporte, nose tal vez diciendo cual es tu fuente de datos, o si utilizares xpath, un poco mas concreto.

  2. Hola Geniz, estoy intentando hacer un reporte en pdf donde los datos a agregar a mi pdf, seran extraidos de un .xls, he probado tu ejemplo, y me da el siguiente error:

    Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/collections/ReferenceMap
    at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.(DefaultExtensionsRegistry.java:96)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:59)
    at net.sf.jasperreports.extensions.ExtensionsEnvironment.createDefaultRegistry(ExtensionsEnvironment.java:80)
    at net.sf.jasperreports.extensions.ExtensionsEnvironment.(ExtensionsEnvironment.java:68)
    at net.sf.jasperreports.engine.util.JRStyledTextParser.(JRStyledTextParser.java:76)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:182)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:77)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:87)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:57)
    at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:142)
    at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:78)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:540)
    at JasperEmpty.main(JasperEmpty.java:24)
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.ReferenceMap
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    … 20 more

    Alguna sugerencia?

  3. Hola Geniz, estoy intentando hacer un reporte en pdf donde los datos a agregar a mi pdf, seran extraidos de un .xls, he probado tu ejemplo, y me da el siguiente error:

    Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/collections/ReferenceMap
    at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.(DefaultExtensionsRegistry.java:96)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:59)
    at net.sf.jasperreports.extensions.ExtensionsEnvironment.createDefaultRegistry(ExtensionsEnvironment.java:80)
    at net.sf.jasperreports.extensions.ExtensionsEnvironment.(ExtensionsEnvironment.java:68)
    at net.sf.jasperreports.engine.util.JRStyledTextParser.(JRStyledTextParser.java:76)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:182)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:77)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:87)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:57)
    at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:142)
    at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:78)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:540)
    at JasperEmpty.main(JasperEmpty.java:24)
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.ReferenceMap
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    … 20 more

    Alguna sugerencia? Estoy usando Eclipse Galileo. Y mis librerias son:
    commons-beanutils-1.8.0.jar.zip
    commons-collections-3.2.jar.zip
    commons-logging.jar
    iText-2.1.6.jar
    jasperreports-3.7.5.jar
    xercesImpl.jar
    commons-digester-2.0.jar.zip

    • Estas utilizando iReport o a traves de que extraes los datos?, te recuerdo q iReport es capaz de extraer y usar como archivos fuentes XLS

  4. Hola a todos. Queria saber si se puede hacer lo siguiente.
    Yo muestro una lista de campos de una tabla, para que los seleccionen (son con los que quiero hacer el informe), incluso son campos de varias tabla que estan relacionadas.
    Yo usando una sentencia SQL los puede ver todos, es decir la sentencia la se hacer.
    Lo que no se hacer es como indicar al informe los campos que se han seleccionado.
    Espero explicarme bien.
    Gracias a todos.

    • El informe se “llena” autmoticamente con los campos de la consulta que le especifiques; es decir, el informe recibe una consulta SQL, y los campos que esta genera son los que se mostraran en el informe.

      • Ok, muchas gracias, lo voy a intentar. Saludos de Aviles (Asturias España)

  5. Hola que tal baje el codigo y unas librerias necesarias pero me sale este error:
    net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: ao.jasper
    at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:84)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:536)
    at hotel.JasperTest.main(JasperTest.java:18)
    Caused by: java.io.FileNotFoundException: ao.jasper
    NOTA: Coloque clase y los archivos de reporte en el mismo paquete pero nada…Gracias por tu ayuda de antemano..

    • no esta encontrando el archivo .jasper, verifica la ruta

  6. hola que tal estoy tratando de hacer un reporteador pero los datos los tengo en tiempo real en una aplicacion de java y no lo quiero hacer con base de datos solo quiero que me los mande al ireport pero no se como hacerle necesito ayuda

  7. Hola, he hecho un informe con iReport que me muestra datos de varias tablas de base de datos y el problema que tengo es que solamente me muestra un registro por cada hoja. En vez de sacarme todos los registros seguidos. Asi que para mostrar 100 registros me esta generando un informe de 100paginas ¿cómo lo puedo solucionar?
    en ColumnHeader he metido los nombres de los campos que quiero mostrar (ej: Nombre, direccion,…) y luego en Detail solo tengo los campos a mostrar ¿que hago mal?


Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.

Únete a otros 62 seguidores