Jasper reports 计算JasperReports中列的和,并基于该值进行计算

Jasper reports 计算JasperReports中列的和,并基于该值进行计算,jasper-reports,Jasper Reports,我有下面这样的数据,这些数据是通过JasperReports的查询获取的 第1列包含以下数据: 12, 21, 23, 321, 23 现在我想在第2列中显示每行值的百分比,例如第1行 (100 * 12) / sum of (column1) 应该对所有行执行此操作 如何在JasperReports中实现这一点?添加一个变量(例如v_sum)以获取列的总和(例如EMPLOYEEID) 示例报告,您可以使用示例数据库(

我有下面这样的数据,这些数据是通过JasperReports的查询获取的

第1列包含以下数据:

12,                  
21,                   
23,
321,
23
现在我想在第2列中显示每行值的百分比,例如第1行

(100 * 12) / sum of (column1)
应该对所有行执行此操作

如何在JasperReports中实现这一点?

添加一个变量(例如v_sum)以获取列的总和(例如EMPLOYEEID)

示例报告,您可以使用示例数据库(HSQLDB)运行此报告:-



您能告诉我评估时间属性的作用是什么吗?有什么方法可以在变量中进行计算吗?因为我想根据其值对该(百分比)列进行排序。实际上,您不需要按第2列排序,只需在查询中为第1列添加order by,因为如果第1列的值更高,则%值也会更高。我尝试过这样做,但由于该列是组计算的结果,因此它在报告中给了我奇怪的结果。还有别的办法吗?
<variable name="v_sum" class="java.lang.Integer" calculation="Sum">
    <variableExpression><![CDATA[$F{EMPLOYEEID}]]></variableExpression>
</variable>
   Evaluation Time-     Auto
   <?xml version="1.0" encoding="UTF-8"?>
   <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report2" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="76072389-4335-4fd9-b45a-111b679776c9">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<queryString>
    <![CDATA[select EMPLOYEEID from orders]]>
</queryString>
<field name="EMPLOYEEID" class="java.lang.Integer"/>
<variable name="v_sum" class="java.lang.Integer" calculation="Sum">
    <variableExpression><![CDATA[$F{EMPLOYEEID}]]></variableExpression>
</variable>
<columnHeader>
    <band height="28" splitType="Stretch">
        <staticText>
            <reportElement uuid="00bd99b4-690f-4eea-aebe-08b0cdcfcec2" x="15" y="6" width="100" height="20"/>
            <textElement/>
            <text><![CDATA[EmployeeID]]></text>
        </staticText>
        <staticText>
            <reportElement uuid="6396c710-73d9-407f-ba02-4aceb524cb75" x="172" y="6" width="100" height="20"/>
            <textElement/>
            <text><![CDATA[%]]></text>
        </staticText>
    </band>
</columnHeader>
<detail>
    <band height="20" splitType="Stretch">
        <textField>
            <reportElement uuid="dbbdb209-dbd4-4dbb-a454-32968c31ec79" x="14" y="0" width="100" height="20"/>
            <textElement/>
            <textFieldExpression><![CDATA[$F{EMPLOYEEID}]]></textFieldExpression>
        </textField>
        <textField evaluationTime="Auto">
            <reportElement uuid="f14e9e42-5486-4204-974c-c2c148ab73c7" x="172" y="0" width="100" height="20"/>
            <textElement/>
            <textFieldExpression><![CDATA[(100*$F{EMPLOYEEID}) / $V{v_sum}]]></textFieldExpression>
        </textField>
    </band>
</detail>