Добрый день. Есть отчет сделанный в iReport. Через eclipse сделал проект запускающий отчет. Сам класс Код | package Sbit;
import java.awt.Dimension; import java.sql.Connection; import java.util.HashMap;
import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.design.JasperDesign; import net.sf.jasperreports.engine.xml.JRXmlLoader; import net.sf.jasperreports.view.JasperViewer; public class Ireport { public String sourceFileName; public HashMap parameters = new HashMap(); public void ireport(){ try { JasperDesign jasperDesign = JRXmlLoader.load(sourceFileName); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
Connection conn = DBConnector.getConnection(); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,parameters, conn); JasperViewer.viewReport(jasperPrint,false); } catch (JRException ejr) {
ejr.printStackTrace();
} } }
|
Вызов отчета Код | Ireport ir =new Ireport(); ir.sourceFileName="mor_otgr2.jrxml"; ir.ireport();
|
открывается JasperViewer, хочу сохранить в xls выдаёт ошибку: Код | Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFCellStyle at net.sf.jasperreports.view.save.JRSingleSheetXlsSaveContributor.save(JRSingleSheetXlsSaveContributor.java:108) at net.sf.jasperreports.view.JRViewer.btnSaveActionPerformed(JRViewer.java:1128) at net.sf.jasperreports.view.JRViewer$3.actionPerformed(JRViewer.java:668) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) at java.awt.Component.processMouseEvent(Component.java:6268) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6033) at java.awt.Container.processEvent(Container.java:2045) at java.awt.Component.dispatchEventImpl(Component.java:4629) at java.awt.Container.dispatchEventImpl(Container.java:2103) at java.awt.Component.dispatchEvent(Component.java:4455) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227) at java.awt.Container.dispatchEventImpl(Container.java:2089) at java.awt.Window.dispatchEventImpl(Window.java:2517) at java.awt.Component.dispatchEvent(Component.java:4455) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:649) at java.awt.EventQueue.access$000(EventQueue.java:96) at java.awt.EventQueue$1.run(EventQueue.java:608) at java.awt.EventQueue$1.run(EventQueue.java:606) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116) at java.awt.EventQueue$2.run(EventQueue.java:622) at java.awt.EventQueue$2.run(EventQueue.java:620) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.awt.EventQueue.dispatchEvent(EventQueue.java:619) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177) at java.awt.EventDispatchThread.run(EventDispatchThread.java:138) Caused by: java.lang.ClassNotFoundException: org.apache.poi.hssf.usermodel.HSSFCellStyle at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) ... 40 more
|
А если запускаю в самом iReport, и выбираю сохранить в xls. Сохраняет. В чем проблема? Отдельно делать кнопку сохранить отчет в xls, не надо. Задача: отобразить результат отчета, пользователь выбирает сам в каом формате сохранить (xls,od t или др). Есть какая-то библиотека poi. На сайте apatch не нашел jar файлы.
--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно.
|