2017-08-25 4 views
1

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:

  1. 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.
  2. 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.
  3. 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> 
+0

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 –

+0

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: ' ')? Est-ce que ça marche? –

+0

@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. –

Répondre

0

Il semble que l'exception est le résultat d'un décalage entre ce qui permet JS studio et ce que ce compilateur particulier (pas sûr que les utilisations JSS le compilateur que j'ai installé (6.4.1) ou celui qu'il installe) le permet.

De toute évidence, la solution consiste à s'assurer que le compilateur utilisé est compatible.