在JasperServer中部署子报表

use*_*876 7 jasper-reports subreport ireport jasperserver

我已经创建了一个框架和子报表,用于与APEX集成,并精炼到我准备在JasperServer上部署的地步.不知何故,确切的语法正在打败我.我已经尝试了以下问题所表明的所有变化,但似乎没有任何效果.我正在使用Glassfish,顺便说一句,但我认为这不重要.这是我的问题:

  1. 部署子报表时,是作为报表还是作为JRXML文件进行部署?

  2. 我是否需要为子报表设置输入控件,如框架报告所传递的那样?

  3. 只要我将正确的SUBREPORT_DIR参数传递给框架,部署子报表(文件夹结构)的位置是否重要?

  4. 在那SUBREPORT_DIR,我尝试了几个不同的东西.首先,我将默认设置作为本地盒子上的绝对路径,用于调试目的,并在URL中传递我想要的值(即...&SUBREPORT_DIR =/Subreports/...).我也尝试将默认设置为我想要的路径.既不起作用,但前者是否应该起作用?

  5. 传递的实际语法是SUBREPORT_DIR什么?我已将框架报告部署为"/ reports/frame",将子报告部署为"/ reports/subreports/sub",因此我传递了"repo:/ Subreports /"(URL中没有引号,默认为引号)在框架上).

我的框架和子工作在iReport中使用与我传递的相同的参数,但它们根本不起作用.我可以在JasperServer下加载sub作为报告,传递params帧传递,然后让它工作,但是当我尝试运行框架时,没有骰子.

在此先感谢所有帮助,我希望一旦我得到正确的配置,我会付清.

Pet*_*erg 1

OP 的发现。

  1. 子报表需要作为 JRXML 文件部署在存储库中。它将在存储库视图的相应列中显示“文件”。

  2. 您不需要为子报表设置输入控件。框架报表仅需要它使用的那些输入控件,而不需要子报表参数。

  3. 只要传递正确的 SUBREPORT_DIR,您就可以将子报表放在您想要的任何位置,但请记住,框架报表将通过您指定的名称精确引用子报表。我的两个问题之一(另一个问题请参见上面的#1)是在默认路径中指定扩展名。这在 iReport 中是正确的,但在服务器端是错误的。

  4. SUBREPORT_DIR可以作为参数传递并按照广告的方式工作。

  5. 我现在用作默认参数的正确路径SUB_REPORT_DIR类似于"repo:/reports/Subreports/"。因此,详细信息下的子报表表达式为:$P{SUBREPORT_DIR} + "five_col_sub".请参见上面的#3。

确实没有那么棘手,但也不是完全直观。我的同事指出“repo:”是 JasperServer Repository 的缩写。现在看起来很明显,但我假设它意味着“报告”,因此任何带有子报告的报告和子报告本身都必须存在于 /reports/ 目录下,但事实并非如此。