我遇到了JasperReports的问题我无法解决。我正在使用Eclipse,OpenReports 3.2和IReport 3.7
我遇到的问题是报告什么也没做。当我在IReport中预览报表时,我至少可以得到一个“文档没有页面”的消息,但是当我尝试使用OpenReports打开它时,它什么也没做。我得到了开放报告标题和版权信息,但它们之间没有任何内容。
我能够在OpenReports的ReportRunAction.java中将其跟踪到第150行。那条线是:
jasperPrint = jasperEngine.fillReport(reportInput);
至少那是页面死亡的行。它会跳过该行所在的catch块,但错误是空的。当我尝试打印描述时,它为空。我不能发誓这个问题不是那个参数。通过浏览所有我能够找到的内容是关于如何使用OpenReports使用的相同版本的jasperreports.jar编译报告。我不知道如何判断/ jasper报告的版本是否被捆绑到.jasper文件中。
这是我的问题吗?如果是这样,我如何告诉/设置捆绑的jar版本?如果不;帮助!
答案 0 :(得分:4)
如果报告没有记录,或者您使用错误的过滤器表达式丢弃所有页面消息,则会显示无页面消息。
您可以尝试以下几种方法:
将过滤器表达式设置为:
new Boolean(true)
这将以某种方式重置过滤器表达式。
找到更多。 ..
并将报告属性“无数据时”设置为“所有部分无详细信息”,以便至少可以看到报告的其余部分。
感谢。
答案 1 :(得分:3)
如果您使用的是详细信息Bandeport,则需要为报告提供数据查询。由于它在iReport中返回“No Pages”,因此您要么没有查询。或者只是您的查询没有返回任何行。
在旧版iReport中,从“数据”菜单中选择“报表查询”并在此处编写查询。如果只需要一个记录(即只有一次详细信息带),则可以使用虚拟表。像:
SELECT 'a' FROM DUMMY
否则,如果您不想使用细节带,则可以选择在不使用查询的情况下查看其他带。从Edit
菜单中选择Report Properties
,在More...
标签下,将标记When no data
设置为All Sections, no detail
您的问题不是例外或错误,只是没有数据显示。
答案 2 :(得分:1)
任何空数据源都可以解决问题。
答案 3 :(得分:0)
当我使用仅包含其他子报表且没有实际查询的子报表时,我在使用IReport时遇到了同样的错误。添加虚拟查询作为medopal建议修复no pages
错误并允许事情正确运行。
另请参阅:http://jasperforge.org/plugins/espforum/view.php?group_id=83&forumid=101&topicid=49315
答案 4 :(得分:0)
我一直面对这个错误。在我的情况下,由于图像发生此错误。如果报表文件中有图像,则在使用报表时,将强制使用有效数据填充图像。如果你不这样做,你会看到这个错误"文档没有页面"。要解决这个问题,只需在错误类型"上设置"属性窗口中的字段(只需单击图像,您将看到属性窗口)到"空白"。
强烈的愿望。
答案 5 :(得分:-1)
我有同样的问题,在搜索问题后得到了,我没有提供连接密码。
所以我将这些行添加到我的java代码中。
Class.forName("com.mysql.jdbc.Driver");
con =DriverManager.getConnection("jdbc:mysql://localhost:3306/stock_mngt","root","your password");
现在我的代码正常运作。