1

我正在使用 Ireport 4.8.0 创建报告,我将报告编译成 jrxml 和 jasper 文件,并在 zuckerreport 上使用这些文件显示报告。到目前为止,我创建了许多报告,即使使用字符串参数,也一切正常。

当我要求创建一个组合框(输入控件)参数时,我被告知这也只能使用 Jasperreport 服务器创建。不仅是报告。

我的问题是:如果我在 Ireport 中使用使用 jasperreport 服务器创建的输入控件创建报告并编译报告,那么报告文件(jrxml 和 jasper)是否独立?我的意思是,如果将来我会尝试在没有安装 jasperserver 的情况下在 zuckerreport 中运行报告,那么报告是否仍然有效?报告文件是否包括他们需要在没有 jasperreport 服务器的情况下工作的所有内容,包括我创建的输入控制参数?

4

1 回答 1

2

很难说他们是独立的。我想它们是相关的。它与 java 的工作方式非常相似。您拥有*.java*.class文件,其中class文件是从java文件派生的。

因此,这些*.jrxml文件只是一个文本文档,其中包含报告的实际设计,以更人性化的方式。为了运行报告,JasperReports 需要JRXML文件的编译版本。这些*.jasper文件是编译后的版本,然后用于在运行时执行报告。

JasperServer 不是必需的。这取决于你想要做什么。从技术上讲,这些报告包含需要编译和执行的所有信息。就像我对您之前的问题的评论一样,您可以在执行报告时获取报告所需的任何参数的值并将它们传递给 JasperReports。JasperServer 只是达到此目的的一种手段,并为此提供了一个更加用户友好的 GUI 前端。

在不知道您打算如何让最终用户使用/访问您的报告的情况下,很难给出更多指导。但在几乎所有情况下,您都需要创建一个屏幕,提示用户在报告中输入所需的参数值并将它们传递给引擎。

现在说你想要这一切都是动态的。用最简单的术语来说是可能的。如果参数本质上是自由形式的字段(用户只需键入他们想要的任何内容),您可以使用 JasperReports API 来获取参数及其类型。然后创建适当的输入字段。当您想将参数的可能值限制为某个列表时,这显然会崩溃。生成此值列表所需的信息不是JRXMLorJasper文件的一部分。

于 2012-12-14T15:17:21.930 回答