我在Jaspersoft iReport Designer中有类似的报告,但是无法弄清楚如何将垂直列“Doctor Payment”中的所有值加起来得到总数为“1601”的?此列的长度是可变的(即,行的数量根据数据库的大小及其更新频率而变化)。
是否有像$V{COLUMN_COUNT}
这样的变量(实际上没有行,这里是5),
它给出了列中所有值的总和?如果不是,怎么做总和?
Doctor ID Doctor Payment
A1 123
B1 223
C2 234
D3 678
D1 343
Total 1601
答案 0 :(得分:61)
解决您的任务非常容易。您应该创建并使用新变量来汇总“医生付款”列的值。
在您的情况下,变量可以这样声明:
<variable name="total" class="java.lang.Integer" calculation="Sum">
<variableExpression><![CDATA[$F{payment}]]></variableExpression>
</variable>
工作示例。
CSV数据源:
doctor_id,payment A1,123 B1,223 C2,234 D3,678 D1,343
模板:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ...>
<queryString>
<![CDATA[]]>
</queryString>
<field name="doctor_id" class="java.lang.String"/>
<field name="payment" class="java.lang.Integer"/>
<variable name="total" class="java.lang.Integer" calculation="Sum">
<variableExpression><![CDATA[$F{payment}]]></variableExpression>
</variable>
<columnHeader>
<band height="20" splitType="Stretch">
<staticText>
<reportElement x="0" y="0" width="100" height="20"/>
<box leftPadding="10"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="10" isBold="true" isItalic="true"/>
</textElement>
<text><![CDATA[Doctor ID]]></text>
</staticText>
<staticText>
<reportElement x="100" y="0" width="100" height="20"/>
<box leftPadding="10"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="10" isBold="true" isItalic="true"/>
</textElement>
<text><![CDATA[Doctor Payment]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="20" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="100" height="20"/>
<box leftPadding="10"/>
<textElement/>
<textFieldExpression><![CDATA[$F{doctor_id}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="100" y="0" width="100" height="20"/>
<box leftPadding="10"/>
<textElement/>
<textFieldExpression><![CDATA[$F{payment}]]></textFieldExpression>
</textField>
</band>
</detail>
<summary>
<band height="20">
<staticText>
<reportElement x="0" y="0" width="100" height="20"/>
<box leftPadding="10"/>
<textElement>
<font isBold="true"/>
</textElement>
<text><![CDATA[Total]]></text>
</staticText>
<textField>
<reportElement x="100" y="0" width="100" height="20"/>
<box leftPadding="10"/>
<textElement>
<font isBold="true" isItalic="true"/>
</textElement>
<textFieldExpression><![CDATA[$V{total}]]></textFieldExpression>
</textField>
</band>
</summary>
</jasperReport>
结果将是:
您可以在JasperReports Ultimate Guide找到很多信息。
答案 1 :(得分:11)
iReports列的自定义字段 (总和,平均等)
右键单击“变量”,然后单击“创建变量”
点击新变量
一个。请注意右侧的属性
相应地重命名变量
将值类名称更改为正确的数据类型
一个。您可以点击3点
选择正确的计算类型
更改表达式
一个。单击小图标
湾选择要查看的列
℃。点击完成
将初始值表达式设置为0
将增量类型设置为无
设置重置类型(通常是报告)
将新的文本字段拖到舞台上(通常在最后一页页脚或列页脚中)
选择新变量
点击完成