Sag*_*kam 27 jasper-reports ireport
我在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
Run Code Online (Sandbox Code Playgroud)
Ale*_*x K 65
解决您的任务非常容易.您应该创建并使用新变量来汇总"医生付款"列的值.
在您的情况下,变量可以这样声明:
<variable name="total" class="java.lang.Integer" calculation="Sum">
<variableExpression><![CDATA[$F{payment}]]></variableExpression>
</variable>
Run Code Online (Sandbox Code Playgroud)
工作实例.
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>
Run Code Online (Sandbox Code Playgroud)
结果将是:

您可以在JasperReports Ultimate Guide中找到很多信息.
Mat*_*att 14
iReports列的自定义字段(总和,平均值等)
右键单击"变量",然后单击"创建变量"
单击新变量
一个.请注意右侧的属性
相应地重命名变量
将值类名称更改为正确的数据类型
一个.您可以通过单击3个点进行搜索
选择正确的计算类型
更改表达式
一个.单击小图标
湾 选择要查找的列
C.点击完成
将初始值表达式设置为0
将增量类型设置为none
设置重置类型(通常是报告)
将新的文本字段拖到舞台上(通常在最后一页页脚或列页脚中)
选择新变量
点击完成