如何总结在iReport的的JasperSoft Designer中列的所有值?(How to su

2019-06-21 07:16发布

我有以下的JasperSoft的iReport的设计类似的报告,但无法弄清楚如何总结出现在垂直列“医生支付”一共拿到的“1601”的所有值? 此列的长度(即没有行的根据不同的数据库和它的更新频率的大小)是可变的。

有没有像任何变量$V{COLUMN_COUNT} (实际上没有给出行,在这里5),这给所有值的总和在一列? 如果没有,该怎么办总和

Doctor ID   Doctor Payment
 A1             123
 B1             223
 C2             234
 D3             678
 D1             343
Total          1601

Answer 1:

这是很容易解决的任务。 您应该创建和使用新的变量和总结了“医生支付”列的值。

你的情况的变量可以声明如下:

<variable name="total" class="java.lang.Integer" calculation="Sum">
    <variableExpression><![CDATA[$F{payment}]]></variableExpression>
</variable>
  • 计算类型萨姆 ;
  • 复位类型 报告 ;
  • 变量表达式 $ F {}支付 ,其中$ F {}支付是一个字段的名称包含总和( 医生付款 )。

工作的例子。

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的终极指南



Answer 2:

iReports自定义字段的列(求和,平均值等)

  1. 右键单击变量,然后单击创建变量

  2. 点击新变量

    一个。 注意右边的性质

  3. 因此重命名变量

  4. 更改值类的名称,正确的数据类型

    一个。 您可以通过点击3点搜索

  5. 选择正确类型的计算

  6. 更改表达式

    一个。 点击小图标

    湾 选择列你正在寻找做计算

    C。 点击完成

  7. 设置初始值表达式为0

  8. 设置增量类型为none

  9. 离开增量器工厂类名的空白
  10. 设置复位类型(通常汇报)

  11. 将一个新的文本字段级(通常在最后一页页脚,或列脚注)

  12. 双击新的文本字段
  13. 清除表达式“文本字段”
  14. 选择新变量

  15. 点击完成

  16. 将新文本在一个理想的位置


文章来源: How to sum all values in a column in Jaspersoft iReport Designer?