1

以下.jrxml:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="DTC-Campaigns-Block-Campaigns-Helper-Campaigns" language="groovy" pageWidth="794" pageHeight="450" orientation="Landscape" columnWidth="794" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0">
    <queryString><![CDATA[SELECT 1;]]></queryString>
    <detail>
        <band height="50" splitType="Stretch">
            <subreport>
                <reportElement x="0" y="0" width="794" height="25"/>
                <subreportExpression class="java.lang.String"><![CDATA["./test.jasper"]]></subreportExpression>
            </subreport>
        </band>
    </detail>
</jasperReport>

不会在 iReport 3.6.0 中编译:

Compiling to file... /home/dominik/workspace/project1/reporting/MyFile.jasper
Compiling subreports....
Unable to locate the subreport with expression: "$P{SUBREPORT_DIR} + "test.jasper"".

即使修复SUBREPORT_DIR./无济于事,test.jrxml在主报告之前手动编译也无济于事。

有任何想法吗?

4

7 回答 7

1

在 jrxml 提取中,您没有指定 SUBREPORT_DIR 是字符串参数...您可以添加此信息。

我还注意到3.5.2 和 3.5.3版本之间的行为变化 3.5.3 版本的变更日志说:

自动编译子报表

因此,参数化子报告路径似乎不再起作用......(但我记得收到警告,而不是失败)。

你有没有尝试过 :

  • 仅编译子报表(使用 iReport)。[预览将生成 jasper 文件,它是 jrxml 的编译版本]
  • 用 jrxml 文件(而不是 jasper 文件)给出一个表达式$P{SUBREPORT_DIR} + "test.jrxml",并且根本没有参数(比如"test.jrxml"——你的子报告需要和你的主报告在同一个本地目录中)
于 2009-10-28T10:04:33.773 回答
0

不能确定当前目录并作为参数传入吗?我就是这样做的,而且效果很好。如果您将 Jasper Reports 集成到代码中,您甚至可以使用一些代码来获取 Java 中当前目录的完整路径,并通过 HashMap 将其传入。

于 2009-09-29T20:28:07.263 回答
0

要解决这个问题,你必须在 $P{SUBREPORT_DIR} 中设置绝对路径。

它可以在属性窗口的 iReport 中的“默认值表达式”属性中完成。

如需更好的解释,请参阅: http://jasperforge.org/plugins/espforum/view.php?group_id=83&forumid=101&topicid= 62793

于 2010-06-25T19:18:32.990 回答
0

您不需要在子报告中包含 SUBREPORT_DIR ...只要 supreport 与主报告中的目录位于同一目录中.. 就没有问题...预览 jrxml 文件时会发生编译...

于 2010-08-17T08:40:31.507 回答
0

新版本的 JasperReports 不再出现问题(至少在我的情况下没有)。

于 2010-11-26T11:10:30.680 回答
0

在我的例子中:在Subreport Expression我添加的属性编辑器的属性中,参数SUBREPORT_DIR和 a/得到类似的东西:

$P{SUBREPORT_DIR} + "/InvoiceDetail.jasper"
于 2014-01-19T23:14:40.757 回答
0

我正在使用 iReport 3.7.3 版

该问题可以通过两种方式解决:

1.将参数 SUBREPORT_DIR 的值分配给一个变量并使用该变量而不是像这样的参数:

$V{path} + "InvoiceDetail.jasper"

确保“变量表达式”设置为 $P{SUBREPORT_DIR}

2.将参数 SUBREPORT_DIR 的“默认值表达式”设置为 $P{SUBREPORT_DIR} 并像这样使用它:

$P{SUBREPORT_DIR} + "InvoiceDetail.jasper"
于 2014-04-11T06:27:53.037 回答