Je reçois une exception lors de la compilation dans Jaspersoft Studio 6.4.0. Comment puis-je résoudre ce problème?Le sous-rapport avec la valeur de retour donne une exception "Le système n'est pas facet valide avec l'énumération"
J'ai créé un rapport contenant un sous-rapport dont je souhaite renvoyer une valeur. Pour ce faire, je:
- créé une variable dans le sous-état appelé « logTotal », mis à la valeur d'une autre variable, ce qui est une somme calculée dans le rapport . Aucun type de réinitialisation, aucune fonction de calcul.
- Création d'une variable dans le rapport principal avec le même nom et le même type. Aucun type de réinitialisation, aucune fonction de calcul.
- Dans le rapport principal, créez un lien de valeur de retour de sous-rapport entre les deux variables avec le type de calcul "Système".
Sur décompiler, je vois l'exception suivante:
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.
je peux choisir le choix « Système » d'un Si j'utiliser d'autres choix (« Aucune fonction de calcul », « Tout d'abord, "" Moyenne ", etc.), le sous-état renvoie null.
Rapport principal:
<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>
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>
Cela signifie que le type de calcul de ' ' est incorrect. Vous devez définir l'un des éléments suivants: Nothing, Count, DistinctCount, Somme, Average, Lowest, Highest, StandardDeviation, Variance, First. Peut-être que c'est un bug de JSS - l'EDI devrait empêcher de définir la mauvaise valeur –
Avez-vous utilisé la même version de JSS (Studio) pour générer les deux rapports (maître et sous-état)? Avez-vous essayé d'enlever 'calculation =" System "'? Avez-vous essayé de renvoyer une constante du sous-rapport (par exemple: ' variableExpression> ')? Est-ce que ça marche? –
@Alex K: Le système est l'une des valeurs disponibles dans l'ide. C'est dans une zone de liste déroulante avec les autres valeurs mentionnées. Le XML est à la fois créé et compilé dans l'ide. Je vais essayer vos autres suggestions. –