具有返回值的子报表提供异常“系统对枚举的方面不有效”

时间:2017-08-25 19:38:23

标签: jasper-reports subreport jaspersoft-studio

我在Jaspersoft Studio 6.4.0编译期间遇到异常。 我该如何解决这个问题?

我创建了一个包含子报表的报表,我想从中返回一个值。为此,我有:

  1. 在子报表中创建一个名为“logTotal”的变量,设置为 另一个变量的值,是在中计算的总和 报告。没有重置类型,没有计算功能。
  2. 在主报表中创建了一个具有相同名称和类型的变量。 没有重置类型,没有计算功能。
  3. 在主报表中,创建了一个子报表返回值链接 两个变量之间的计算类型为“System。”。
  4. 在编译时,我看到以下异常:

    net.sf.jasperreports.engine.JRException: org.xml.sax.SAXParseException; lineNumber: 454; columnNumber: 91; cvc-enumeration-valid: 
    Value 'System' is not facet-valid with respect to enumeration '[Nothing, Count, DistinctCount, Sum, Average, Lowest, Highest, StandardDeviation, Variance, First]'. It must be a value from the enumeration.
    

    我可以从a中选择“系统”选项 如果我使用其他选择(“无计算功能”,“首先”,“平均”等), 子报告返回null。

    主要报告:

    <variable name="logTotal" class="java.math.BigDecimal" resetType="None"/>
    ...
    <subreport>
        <reportElement positionType="Float" x="0" y="60" width="572" height="40" uuid="d3ec84fb-528f-41f5-8b54-26112fd95b50"/>
        <subreportParameter name="loadList">
            <subreportParameterExpression><![CDATA[$P{loadList}]]></subreportParameterExpression>
        </subreportParameter>
        <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
        <returnValue subreportVariable="logTotal" toVariable="logTotal" calculation="System"/>
        <subreportExpression><![CDATA["scaling/reports/ScaleSummary_Logs.jasper"]]></subreportExpression>
    </subreport>
    

    子报表:

    <variable name="price4" class="java.math.BigDecimal" calculation="Sum">
        <variableExpression><![CDATA[$F{price}]]></variableExpression>
    </variable>
    <variable name="logTotal" class="java.math.BigDecimal" resetType="None">
        <variableExpression><![CDATA[$V{price4}]]></variableExpression>
    </variable>
    

1 个答案:

答案 0 :(得分:0)

似乎异常是JS Studio允许的内容与此特定编译器(不确定JSS是否使用我安装的编译器(6.4.1)或安装的编译器)允许的不匹配的结果。

显然,解决方案是确保所使用的编译器兼容。