Jasper reports 在JasperServer中部署子报表

Jasper reports 在JasperServer中部署子报表,jasper-reports,ireport,jasperserver,subreport,Jasper Reports,Ireport,Jasperserver,Subreport,我已经创建了一个与APEX集成的框架和子报告,并对其进行了改进,使其可以部署到JasperServer上。不知何故,确切的语法让我感到困惑。我已经尝试了以下问题所显示的所有变化,但似乎没有任何效果。顺便说一句,我用的是玻璃鱼,但我认为这并不重要。以下是我的问题: 部署子报表时,我是作为报表还是作为JRXML文件部署 我是否需要为子报表设置输入控件(由框架报表传递) 只要我将正确的subreport\u DIR参数传递到帧,那么在何处部署子报表(文件夹结构)重要吗 在这个子报告\u DIR中,我尝

我已经创建了一个与APEX集成的框架和子报告,并对其进行了改进,使其可以部署到JasperServer上。不知何故,确切的语法让我感到困惑。我已经尝试了以下问题所显示的所有变化,但似乎没有任何效果。顺便说一句,我用的是玻璃鱼,但我认为这并不重要。以下是我的问题:

  • 部署子报表时,我是作为报表还是作为JRXML文件部署

  • 我是否需要为子报表设置输入控件(由框架报表传递)

  • 只要我将正确的
    subreport\u DIR
    参数传递到帧,那么在何处部署子报表(文件夹结构)重要吗

  • 在这个
    子报告\u DIR
    中,我尝试了两种不同的方法。首先,出于调试目的,我在本地框中使用了默认的绝对路径,并在URL中传递了我想要的值(即…&SUBREPORT_DIR=/Subreports/)。我还尝试将默认设置为我想要的路径。两者都不起作用,但前者应该和后者一样起作用吗

  • 传递子报告目录的实际语法是什么?我已将框架报告部署为“/reports/frame”,子报告部署为“/reports/Subreports/sub”,因此我传递的是“repo:/Subreports/”(URL中没有引号,默认框架中有引号)

  • 我的框架和子框架在iReport中使用的参数与我传递的参数相同,但它们根本无法从URL工作。我可以在JasperServer下加载sub作为报告,在params框架通过时将其传递,然后使其工作,但是当我尝试运行框架时,没有骰子

    提前感谢您提供的所有帮助,我希望在正确配置此功能后予以回报。

    OP的发现

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

  • 不需要为子报表设置输入控件。框架报告只需要它使用的那些输入控件,而不需要子报告参数

  • 只要您传递了正确的子报表_DIR,就可以将子报表放在您想要的任何位置,但请记住,帧报表将完全按照您指定的名称引用子报表。我的两个问题之一(另一个问题见上文#1)是在默认路径中指定扩展。这在iReport中是正确的,但在服务器端是错误的

  • SUBREPORT\u DIR
    可以作为参数传递,并按照公布的方式工作

  • SUB\u REPORT\u DIR
    的正确路径类似于
    “repo:/reports/Subreports/”
    ,我现在将其用作默认参数。因此,detail下的子报表表达式是:
    $P{Subreport_DIR}+“five_col_sub”。
    见上文第3段


  • 不是很棘手,真的,但也不是完全凭直觉。我的同事指出,“repo:”是JasperServer存储库的缩写。现在看起来很明显,但我假设它的意思是“报告”,因此任何包含子报告的报告以及子报告本身都必须存在于/reports/目录下,事实并非如此。

    我很高兴您找到了解决问题的方法。如果您将您的发现复制为答案,并将其标记为“已接受”(单击将出现在答案旁边的空复选标记),则可能会帮助将来遇到相同问题的人。这将表明该问题对以后偶然发现它的任何人都有一个有效的答案。我已将您的答案移动到社区wiki答案,现在您只需接受它;)