当前位置: 首页 > 知识库问答 >
问题:

具有返回值的子报表给出异常“系统在枚举中无效”

印子平
2023-03-14

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

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

  1. 在子报告中创建了一个变量,名为“log总”,设置为另一个变量的值,这是报告中计算的求和。没有重置类型,没有计算功能。
  2. 在主报表中创建了一个名称和类型相同的变量。没有重置类型,没有计算函数。
  3. 在主报表中,在计算类型为“System”的两个变量之间创建了子报表返回值链接。

在编译时,我看到了以下异常:

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.

我可以从 如果我使用其他选项(“无计算函数”、“第一”、“平均值”等),则子报表返回 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个答案

梁骞仕
2023-03-14

这个异常似乎是JS Studio所允许的和这个特定的编译器(不确定JSS使用的是我安装的编译器(6.4.1)还是它自己安装的)所允许的不匹配的结果。

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

 类似资料:
  • 问题内容: 什么是C#的Java等价物: 问题答案: 如果需要属性,则需要这样定义: 您可以这样使用它: 要意识到的是,这只是创建类的捷径,因此您可以向该类添加所需的任何属性和方法。 如果您不想在自己的方法上定义任何方法,则可以更改成员变量的范围并进行设置,但这不是它们在Sun网站上的示例中所做的。

  • 问题内容: 我有一个枚举的类对象(我有一个),我需要获取此枚举表示的枚举值的列表。该静态函数有我需要什么,但我不知道怎么去从类对象访问它。 问题答案:

  • 我的模式如下 我正在尝试编写一个方法来检查代码并返回相应的枚举。 event.getStatusCode的有效值是:A,T,U。现在我需要检查这些代码并根据代码返回枚举。我尝试了上面的方法,但它给我代码=["A"]的错误。下面是错误状态。 我该怎么解决这个问题?我是java新手。非常感谢您的帮助,谢谢

  • 我有一个类似这样的字符串枚举: 我有一个包含一些字符串的列表。 我想迭代someStringList并为它找到相应的枚举。 例如:列表包含字符串“一些值”和“一些第三个值”,然后我想使用JavaStream-API返回一个包含SomeEnum.STRING1和SomeEnum.STRING3的列表 不知何故,我无法让它工作。我尝试了这样的事情: 但这不会编译,因为它不会返回任何内容。有什么想法吗?

  • 我用一些字符串作为属性的常量创建了一个枚举。每个常数中字符串的数量都不一样,所以我使用了varargs(第一次这样做)。这是我的枚举: 现在我想要能够键入类似的内容: