【问题标题】:Conditional Executing subreports in iReportiReport 中的条件执行子报表
【发布时间】:2013-06-10 19:27:04
【问题描述】:

在我的主报告中使用了 100 多个子报告和一些详细信息带

并根据主报告中的参数选择给出子报告/详细信息带的条件可见性

<subreport>
                <reportElement uuid="9f36c3cb-7e29-4040-a14e-6a91775e89e4" x="0" y="35" width="555" height="47">
                    <printWhenExpression><![CDATA[$P{disp} == 1]]></printWhenExpression>
                </reportElement>

。但是在主报告中表现非常非常缓慢。

在选择单个子报告时会在几秒钟内执行。主报告中的相同报告在几小时内执行。

在我看来,

所有 Sub 报告和详细信息 Band 都会执行,最后条件可见性正在工作。我们可以控制执行子报告吗?

【问题讨论】:

  • 我不确定您是否可以设置子报表的条件执行;希望其他人知道如何做到这一点。但在此期间,如果您将一个变量传递给子报表,使您的子报表的查询不返回任何数据,该怎么办?例如,在您的子报表中,向 WHERE 子句添加一行:WHERE 1 = $P{exec_sub}。如果你想运行它,传递一个 1,如果你不想运行它,传递一个 0。这并不理想,但可能会加快速度。
  • @Lisa 谢谢,这会起作用,但它会启动数据集 rit.. 它会执行数据集,但不会有结果集

标签: jasper-reports ireport


【解决方案1】:

您可以为每个子报表使用自己的详细信息带,并使用“打印时表达式”设置每个子报表。像这样,根本不应该执行子报表。

如果您在每个子报表的主报表中使用数据集(但应该可以),请将查询移至子报表。

【讨论】:

    猜你喜欢
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多