Java - Llamar ireports mediante JFrame

   
Vista:

Llamar ireports mediante JFrame

Publicado por Jose Arnoldo (2 intervenciones) el 21/05/2016 00:10:39
Saludos a todos, soy nuevo en el grupo y tengo una consulta:

Tengo el siguiente código el cual es un JFrame que hace un llamado a un reporte.jasper para ser añadido en el Frame pero no me abre nada:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package vivetu.ventas;
 
import javax.swing.*;
import java.awt.*;
import java.sql.*;
import java.util.*;
import java.io.*;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.design.*;
import net.sf.jasperreports.view.*;
/**

 */
public class MyiReportViewer extends javax.swing.JFrame {
 
    /**
     * Creates new form MyiReportViewer
     */
    public MyiReportViewer(String fileName) {
        this (fileName, null);
        initComponents();
    }
        public MyiReportViewer(String fileName, HashMap parameter){
        super ("View Report");
        try {
          Class.forName("com.mysql.jdbc.Driver").newInstance();
          Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/frutillar","root","");
          JasperPrint print = JasperFillManager.fillReport(fileName, parameter, con);
          JRViewer viewer = new JRViewer(print);
          Container c;
                c = getContentPane();
          c.add(viewer);
        } catch (ClassNotFoundException cnfe) {
            cnfe.printStackTrace();
 
        } catch (SQLException sqle) {
            sqle.printStackTrace();
        } catch (JRException jre) {
            jre.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        setBounds(10,10,600,500);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    }
 
    private MyiReportViewer() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        MyiReportViewer viewer = new MyiReportViewer ("./ventas/boleta.jasper");
        viewer.setVisible(true);
 
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MyiReportViewer().setVisible(true);
            }
        });
    }

El problema con el codigo anterior me marca error en la linea 32:
1
JasperPrint print = JasperFillManager.fillReport(fileName, parameter, con);

En la linea 26:
[url]this (fileName, null);[/url]

En la linea 88:
[url]MyiReportViewer viewer = new MyiReportViewer ("./ventas/boleta.jasper");[/url]

El volcado del error es el siguiente:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at net.sf.jasperreports.engine.util.JRLoader.<clinit>(JRLoader.java:81)
at net.sf.jasperreports.engine.JRPropertiesUtil.loadProperties(JRPropertiesUtil.java:99)
at net.sf.jasperreports.engine.DefaultJasperReportsContext.initProperties(DefaultJasperReportsContext.java:94)
at net.sf.jasperreports.engine.DefaultJasperReportsContext.<init>(DefaultJasperReportsContext.java:71)
at net.sf.jasperreports.engine.DefaultJasperReportsContext.<clinit>(DefaultJasperReportsContext.java:59)
at net.sf.jasperreports.engine.JasperFillManager.getDefaultInstance(JasperFillManager.java:88)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:760)
at vivetu.ventas.MyiReportViewer.<init>(MyiReportViewer.java:34)
at vivetu.ventas.MyiReportViewer.<init>(MyiReportViewer.java:26)
at vivetu.ventas.MyiReportViewer.main(MyiReportViewer.java:88)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 10 more
C:\Users\jose\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 1 second)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Llamar ireports mediante JFrame

Publicado por Gonzalo (1 intervención) el 09/08/2016 14:27:42
Tengo el mismo problema.
Llevo dos días intentando resolverlo., pero no lo consigo.
Utilizo NetBeans.
Tengo instalado iReport. Este compila y visualiza los informes. Pero al integrarlos en la aplicación se produce el fallo.
Trabajo bajo windows 10 y me parece un problema con las librerias.
Probaré bajo Linux., pero me gustaría hacerlo funcionar en Windows.
Cualquier ayuda se agradece.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar