Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用SUM方法时出现Jasper编译器错误_Java_Jasper Reports - Fatal编程技术网

Java 使用SUM方法时出现Jasper编译器错误

Java 使用SUM方法时出现Jasper编译器错误,java,jasper-reports,Java,Jasper Reports,我在表格的单元格中使用Jasper内置的求和函数。 它应该对其他单元格的内容求和(在本例中,我使用的是单个单元格,但添加多个单元格的输出几乎相同) jrxml是: <jr:column width="49" uuid="e6595bc8-b46e-4bbe-85a2-7ea9526fce83"> <property name="local_mesure_unitwidth" value="pixel"/> <jr:columnHeader style="Tab

我在表格的单元格中使用Jasper内置的求和函数。 它应该对其他单元格的内容求和(在本例中,我使用的是单个单元格,但添加多个单元格的输出几乎相同)

jrxml是:

<jr:column width="49" uuid="e6595bc8-b46e-4bbe-85a2-7ea9526fce83">
 <property name="local_mesure_unitwidth" value="pixel"/>
  <jr:columnHeader style="Table 2_CH" height="20">
    <staticText>
     <reportElement x="2" y="0" width="47" height="20" uuid="af5e8305-5cdf-41ad-b827-80f0ca14771c"/>
     <textElement textAlignment="Center" verticalAlignment="Middle"/>
     <text><![CDATA[Nr. Prest.]]></text>
    </staticText>
  </jr:columnHeader>
  <jr:detailCell style="Table 2_TD" height="30">
   <textField>
    <reportElement x="0" y="0" width="49" height="30" uuid="8cc69012-6972-470a-92f4-e735f8d006d8"/>
    <textFieldExpression><![CDATA[SUM($F{1})]]></textFieldExpression>
   </textField>
  </jr:detailCell>
</jr:column>

在Jasper Studio中工作正常,但当我尝试使用maven插件或使用JasperCompileManager编译报告时,它会返回以下错误

net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file:
1. The method SUM(Integer) is undefined for the type report1_dataset1_1389172627824_411632
            value = SUM(((java.lang.Integer)field_j49.getValue())); //$JR_EXPR_ID=41$
                    <->
2. The method SUM(Integer) is undefined for the type report1_dataset1_1389172627824_411632
            value = SUM(((java.lang.Integer)field_j49.getOldValue())); //$JR_EXPR_ID=41$
                    <->
3. The method SUM(Integer) is undefined for the type report1_dataset1_1389172627824_411632
            value = SUM(((java.lang.Integer)field_j49.getValue())); //$JR_EXPR_ID=41$
                    <->
3 errors

net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:204)
net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:241)
net.sf.jasperreports.engine.jr异常:编译报表表达式类文件时遇到错误:
1.类型report1_dataset1_138917227824_411632的方法总和(整数)未定义
value=SUM(((java.lang.Integer)字段_j49.getValue())//$JR_EXPR_ID=41$
2.类型report1_dataset1_138917227824_411632的方法总和(整数)未定义
value=SUM(((java.lang.Integer)字段_j49.getOldValue())//$JR_EXPR_ID=41$
3.类型report1_dataset1_138917227824_411632的方法总和(整数)未定义
value=SUM(((java.lang.Integer)字段_j49.getValue())//$JR_EXPR_ID=41$
3个错误
net.sf.jasperreports.engine.design.jractCompiler.compileReport(jractCompiler.java:204)
net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:241)
我升级到了最新的Jasper版本(5.5.0),但结果是一样的。

<field name="1" class="java.lang.Integer"/>


并将表达式指定为

<textFieldExpression><![CDATA[SUM($F{one})]]></textFieldExpression>

我解决了将报表语言从Java更改为Javascript的编译问题:

<jasperReport ... name="report_name" language="javascript" ...>

来自[jaspersoft下载][1]


[1] :下载jasperreports-functions-5.5.0.jar并将其放在类路径中。

你能告诉我你的表达方式吗。我已经在问题中添加了jrxml。问题出在
这是什么
..1不是字段名是的,它是:
。。。与
相同的错误,因此我不认为这是一个字段名问题。将其作为任何其他名称…………相同的结果,它不起作用。即使是
SUM((java.lang.Number)1)
也会导致方法SUM(Number)未定义。。messagecanyoupost整个jrxmlI是错误的,它编译javascript,但这只是因为javascript不是编译的,而是解释的。错误出现在运行时。
<jasperReport ... name="report_name" language="javascript" ...>