- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试获取 JTable 中的数据并使用 Jasper Reports 将其打印为报告。我找到了Usando o JRBeanCollectionDataSource和Java beans as Jasper Reports data source using JRBeanCollectionDataSource作为创建我自己的代码的示例:
package Negocio.Relatorios;
import Negocio.Contato;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.JasperViewer;
public class DataFromRelatorios{
public void exibirRelatorio(List<Contato> contatos){
String caminhoJasper = "./etiquetas.jasper";
JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(contatos);
Map parameters = new HashMap();
JasperPrint printer;
InputStream relJas = getClass().getResourceAsStream(caminhoJasper);
try {
printer = JasperFillManager.fillReport(relJas, parameters, dataSource);
JasperViewer viewer = new JasperViewer(printer, true);
viewer.setVisible(true);
}
catch (JRException ex) {
ex.printStackTrace();
}
}
}
当 ActionEvent 发生时调用该类:
private void btnGeraEtiquetasActionPerformed(java.awt.event.ActionEvent evt) {
geradorRelatorios.exibirRelatorio(relatorioTableModel.getDados());
}
这是我的踪迹:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at net.sf.jasperreports.engine.util.JRLoader.<clinit>(JRLoader.java:65)
at net.sf.jasperreports.engine.JRPropertiesUtil.loadProperties(JRPropertiesUtil.java:99)
at net.sf.jasperreports.engine.DefaultJasperReportsContext.initProperties(DefaultJasperReportsContext.java:95)
at net.sf.jasperreports.engine.DefaultJasperReportsContext.<init>(DefaultJasperReportsContext.java:72)
at net.sf.jasperreports.engine.DefaultJasperReportsContext.<clinit>(DefaultJasperReportsContext.java:60)
at net.sf.jasperreports.engine.JasperFillManager.getDefaultInstance(JasperFillManager.java:85)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:956)
at Negocio.Relatorios.DataFromRelatorios.exibirRelatorio(DataFromRelatorios.java:25)
at GUI.JanGerenciaContato.btnGeraEtiquetasActionPerformed(JanGerenciaContato.java:239)
at GUI.JanGerenciaContato.access$300(JanGerenciaContato.java:21)
at GUI.JanGerenciaContato$4.actionPerformed(JanGerenciaContato.java:104)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6288)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4651)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:616)
at java.awt.EventQueue$2.run(EventQueue.java:614)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 47 more
我以为我拥有 Jasper Reports 所需的所有库,但我缺少哪一个?
最佳答案
我猜你错过了 Jakarta Commons Logging Component (version 1.0.4 or later)类路径上的库。您可能应该看看JasperReports Requirements以确保您拥有所需的所有其他必需库和适当的版本。
顺便说一句,您提到您的数据位于 JTable 中,您可能想看看 JRTableModelDataSource这将让您使用 Jtable 的 TableModel 创建数据源。
关于java - JTable 到 iReport,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11566238/
谁能告诉我 JasperReports .jrxml 文件中属性 ireport.x 和 ireport.y 的用途?提前致谢。 最佳答案 参数ireport.x、ireport.y 和 irepor
我正在使用 iReport-3.7.6 我创建了一个 sample_Report1,其中一个参数为 (Project_name) 和 我创建了 Sample_Report2,其中一个参数为 (Empl
我在 jaspersoft 中有一个主要的报告。在主报告中,我使用了两个子报告。在其中一个子报告中,我有一个变量 Total Cash。我必须在下一个子报告中使用这个变量 Total Cash。是否可
我尝试了很长时间: 我正在使用 iReport 设计器创建报告。因为它以所有格式(PDF、Excel、RTF)显示图像,但是当我尝试在 JSP 中以 HTML 格式显示时,图像没有显示。我想做的就是解
我想在术语打印机中打印票据,但信息可以使用 3 英寸或 25 英寸长度的纸张。如果我将页面尺寸设置为 25",我会浪费大量纸张,因为打印了空白。 如何解决? 最佳答案 好吧,这比我想象的要容易。 主元
我在 iReport 中格式化日期有问题 我的电脑我将语言环境配置为法语,但是当 iReport 生成报告时,我发现日期格式为英语语言环境。 这是我的 jrxml 文件中的一些代码:
我知道如何将参数从主报表传递到子报表,因为在子报表对象中有一个特定的字段。但是,我想对表或列表对象作为使用者(而不是子报表)执行相同的操作。可能吗? 例如,假设我有一个“customerID”参数,可
我正在使用 iReport 2.0.5(因为我必须这样做),我在格式化百分比方面遇到了一些问题。当我使用未格式化的 double 时,这就是我得到的: 0 22,22 5,555 (this is t
我想为我的域类实例而不是全部实例创建报告,只是为GSP表中选定的用户(选择复选框)创建报告。在我的报告中,我还将有一些逻辑-很少的条件,一些计算等。我还必须从数据库中获取一些其他数据。我该怎么做呢?我
我正在使用 iReport 2.0.5(因为我必须这样做),我在格式化百分比方面遇到了一些问题。当我使用未格式化的 double 时,这就是我得到的: 0 22,22 5,555 (this is t
我的报表中有一个列表组件,它显示一组数据。它的高度是在运行时根据 Set(JRBeanCollectionDataSource) 的大小确定的。我想创建一个高度与列表相同的矩形。我怎样才能做到这一点?
有人知道在 IReport 上将横向和纵向方向组合在同一个报表中的一种模式吗?请记住我想要一个 PDF 文档作为结果。 谢谢 克莱伯·阿尔贝托。 最佳答案 我认为仅使用 iReport 和 Jaspe
我的报表中需要多个查询,因此添加了新的数据集。 问题是我无法在报表中使用新数据集的字段,错误是:字段不存在。 因此,如何在报表中有多个查询(以打印不同表的字段)而不为每个字段创建子报表? 谢谢。 最佳
如何在iReport中预览以获取包含子报表的报表,并且该子报表在子报表参数中发送? JRXML 中的子报表示例: /subreportExpression> java中的参数示例: InputStre
我的 Java 项目的一份报告可以包含多个子报告吗? 我有一个生成主报告的类,并且根据用户选择的报告,将在主报告中生成子报告。但我在 Java 类上执行此操作,在 iReport 上我只输入参数。因此
我使用iReport 5.1.0工具进行报表设计。 我当前的报告输出如下: ------------------------------------------------------------ |
我们正在使用 iReport 5.0.1,并已成功转换我们的许多 Crystal Reports 包。 我正在处理混合了整数和 double 据类型的数据,并且在详细信息部分的变量字段内执行计算。 然
我正在尝试在我的报告中使用外部对象。 我将带有外部对象的 jar 文件添加到 iReport 类路径(在设置中) 静态文本(带 I18n) msg($R{pdf.invoice.finalTitle}
我的报告中的累加器存在问题。在每页的页脚中,我需要打印记录的总和(小计器),但是当发生分页符时,因为历史字段非常大并且不适合此页面,所以总和会与下一页的值相加记录,将在下一页打印。这是错误的,应仅添加
我有一个子报表,它运行良好,我还有一个使用子报表的报表,并且在 IReport 中也运行良好;我总是使用“文件路径”中的子报表。 但是,我想将报告添加到 JAR(OSGI bundle )中,并将使用
我是一名优秀的程序员,十分优秀!