Tag: jasper reports

在iReport中有许多单独的 – 未完成的数据集

我正在使用iReport 2.0.4将一些数据从java应用程序导出到excel。 我的问题是我的子报告在顶级报告下进行分组,但我希望它们是离散报告。 目前它看起来像这样 订购 – 订单第1行 收 – 收到第1行 -Receipt Line 2 发票 – 发票第1行 – 发票第2行 订购 – 订单第2行 收 – 收到第1行 …….. 我希望它在一个电子表格中成为3个单独的报告。 喜欢这个 订购 所有订单行 收 所有收据行 发票 所有发票行 目前,我将订单作为主报告,收据和发票作为子报告,放入详细信息带订单。 如果可能的话,获得此布局的最佳方式是什么?

使用服务器java api从jasperserver存储库中检索资源

我正在尝试使用它的java API从Jasperserver存储库中检索资源,根据jasper报告服务器终极指南 ,我应该得到一个ExecutionContext接口的实例: ExecutionContext context = JasperServerUtil.getExecutionContext(); 然后,获取RepositoryService接口的实例: RepositoryService repositoryService = …; //how?? 现在我可以使用以下代码获取文件: FileResourceData fileResourceData = repositoryService.getContentResourceData(context, “/examples/report.pdf”); 我的问题是我如何获得RepositoryService实例?

如何将JRBeanCollectionDataSource传递给iReport?

我目前正在尝试使用jasper来帮助我创建报告。 我有这个方法中显示的信息和数据: private void writeToFile(final List sceneLoadModel) throws Exception { final BufferedWriter bw = new BufferedWriter(new FileWriter(“/Uma/nft/result.psv”)); for (final ScenarioLoadModel slm : sceneLoadModel) { bw.write(slm.getScenarioId() + PSP + slm.getScenarioId() + PSP + slm.getScenarioConfig().getName() + PSP + slm.getLoad() + PSP + “” + EOL); if (!slm.getScenarios().isEmpty()) { final int tempCount = slm.getScenarios().get(0).getTemplates().size(); final int sceneCount = […]

Jasper Reports:子报告导致无限循环

我的应用程序中有多个Jasper报告 (包含子报告)。 出于某种原因,一份报告(也包含子报告)不再起作用。 调试超过1天后,我发现它进入无限循环并继续创建用于子报告填充的线程。 调试器保持循环: JRSubReportRunnable.java public void run() { running = true; error = null; try { fillSubreport.fillSubreport(); } catch (JRFillInterruptedException e) { //If the subreport filler was interrupted, we should remain silent } // we have to catch Throwable, because it is difficult to say what would happen with the master // filler […]

如何在指定的打印机中打印Jasper Reports?

我想要的只是在没有用户选择打印机的情况下打印JasperReport。 我搜索了它,但没有好的解决方案可行。 这是我的代码的相关部分: //compile to .jasper String report = JasperCompileManager.compileReportToFile(sourceFileName); //fill the report JasperPrint jasperPrint = JasperFillManager.fillReport(report, parameter, dataSource); //print the report JasperPrintManager.printReport(jasperPrint, true); 我想要选择一台打印机而不是简单的printReport。 有没有办法做到这一点?

JasperReports是在Web应用程序中显示报告的适当解决方案吗?

我们希望生成在Web应用程序中嵌入为html页面或以PDF格式下载的报表。 因此我遇到了JasperReports,因为它认为它会满足这些要求。 目前我们假设我们的报告将有大约50-100页,几乎只包括直方图和一些表。 数据由我们的数据库中的一些昂贵查询检索。 经过一整天的评估,我对网络应用程序方面有几个疑问。 1)分页:当然我不想在一个网页中显示所有页面。 我们需要像分页这样的东西。 但JasperReports似乎不支持这种方法。 与JasperReports一起提供的wepp演示概述了方法:我必须创建一个JasperPrint ,它已经是完整的报告,分配了不需要的内存,并执行了昂贵的查询。 然后我可以显示一个页面。 但是对于每个页面一次又一次地这样做对我来说并不是一个合适的解决方案。 2)如上所述,我们的报告主要包括图表。 在将JasperPrint导出为其输出格式期间生成图像。 如果我理解一切正确,那么随JR一起提供的ImageServlet能够检索这些图像 i)从文件系统中读取生成的图像 ii)出口商已将它们存储在会话中(因此在内存中)。 因为我认为我们将有很多图像ii)不是一个选项,如果我们想要保持webapp的内存占用率低。 但另一方面,用文件充斥文件系统也不是我能想象的最好的主意。 它会删除某些文件吗? 我弄错了吗? 我的理解是正确的吗?

使用Jasper Report导出包含嵌入图像的单个HTML

Jasper Report可以导出到嵌入图像的单个HTML吗? 我将jasper报告输出为单个Excel文件,PDF,RTF。 但多重播放HTML文件。 我管理的不是单个报告文件,而是HTML案例中的许多文件和文件夹。

Jasper Reports:如何编译子报告

我有一个独立的应用程序,其职责之一是获取* .jrxml文件的路径并进行编译。 我可以毫无问题地执行此操作,直到出现具有子报表的报表,其中主程序的编译不会编译其任何子项,从而导致稍后在轨道中找不到子报表* .jasper文件。 有什么办法吗? 1)设置JasperCompileManager以自动获取子报告? 2)获取JasperDesign或JasperReport对象中包含的子报告的路径列表? 我无法直接访问jrxml文件,因此修改报告以适应编译方法不是一种选择,也不应用任何标准命名方案来推断哪些子报告属于哪些报告。 这里有一个类似的问题: http://jasperforge.org/plugins/espforum/view.php?group_id=102&forumid=103&topicid=40683 其中JRVisitor用于生成JRSubreport对象的列表,但是没有解释如何使用它来获取子报表的路径以便编译它并递归地查找子报表的子报表,我无法弄清楚。

在jaspersoft studio中使用多个数据源

根据向Jaspersoft Studio添加自定义数据源,能够将java bean中的自定义数据源添加到报表后,我将使用jasper进入报表的第二点。 我有一个主报告,它使用数据库作为其数据源。 然后我将一个bean.xml数据源添加到报表中,并将一个表添加到主报表中,该报表使用此bean.xml数据源来获取java bean。 我的目标是从主报表中获取字段值并操纵其值,然后用这些值填充bean,最后用bean填充表。 为此,我编写了3个类,我在表数据集中用作Scriptlet : 这是我需要做的事情的说明: 问题出在FillTable类中,当我使用String kNFormelGG = (String) this.getParameterValue(“gg”); 创建的bean.xml使用java.lang.reflect.InvocationTargetException的测试连接失败 Caused by: java.lang.NullPointerException at net.sf.jasperreports.engine.JRAbstractScriptlet.getParameterValue(JRAbstractScriptlet.java:95) at net.sf.jasperreports.engine.JRAbstractScriptlet.getParameterValue(JRAbstractScriptlet.java:86) at org.iqtig.reporting.dataSource.bean.dataSourceXML.FillTable.fillTable(FillTable.java:45) at org.iqtig.reporting.dataSource.bean.dataSourceXML.JRDataSourceFactory.createCollection(JRDataSourceFactory.java:27) … 34 more 如果我分配一个修复值,如String kNFormelGG =”Test me”则bean连接不会遇到任何错误,并且在将bean.xml指定为Dataset1中的Default Data Adapter的值后,它会使用静态值填充表。 如何从主报表数据源动态获取参数或值中的数据并在bean中使用它? 我有这样的假设:在从我的适配器调用静态工厂类时,字段仍然是空的。 也许我错了,但我没有找到任何其他声明来解决这个问题。 BeanFactory类 import java.util.Collection; import net.sf.jasperreports.engine.JRDefaultScriptlet; import net.sf.jasperreports.engine.JRScriptletException; /** * Factory for TableCellsBean Klasse * * @author […]

NoClassDefFoundError:org / apache / commons / logging / LogFactory

我是JasperReports的新手,我想将JasperReports集成到我的Java程序中,所以当我点击打印按钮时,程序将显示报告。 但是当我点击按钮时,我得到一个NoClassDefFoundError 。 码 JButton btnReport= new JButton(“Report”); btnReport.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try{ String fileName= “src/learnReport/Leaf_Grey.jasper”; Connection con = connect.getConnect(); File file = new File(NameFile); JasperReport jasperReport = (JasperReport) JRLoader.loadObject(file); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null,con); JasperViewer.viewReport(jasperPrint,false); } catch(Exception ex){ System.out.println(ex); } } }); 运行时错误 Exception in thread “AWT-EventQueue-0” java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at […]