Cómo sumar todos los valores en una columna en Jaspersoft iReport Designer?
Tengo a continuación un informe similar en Jaspersoft iReport Designer, pero no es capaz de averiguar cómo sumar todos los valores presentes en la columna vertical "Doctor Payment" para obtener un total de "1601"? La longitud de estas columnas es variable (es decir, no hay filas que varíen según el tamaño de la base de datos y su frecuencia de actualización ).
¿Hay alguna variable como $V{COLUMN_COUNT}
(en realidad no da filas, aquí 5),
¿qué da la suma de todos los valores en una columna? Si no, ¿ cómo hacer sum?
Doctor ID Doctor Payment
A1 123
B1 223
C2 234
D3 678
D1 343
Total 1601
2 answers
Es bastante fácil resolver su tarea. Debe crear y utilizar una nueva variable para sumar valores de la columna "Doctor Payment".
En su caso la variable se puede declarar así:
<variable name="total" class="java.lang.Integer" calculation="Sum">
<variableExpression><![CDATA[$F{payment}]]></variableExpression>
</variable>
- el tipo de cálculo es Sum ;
- el tipo de restablecimiento es Informe ;
- el expresión Variable es $F{pago}, donde $F{pago} es el nombre de un campo contiene sum (Médico Pago).
El ejemplo de trabajo.
Fuente de datos CSV:
doctor_id,payment A1,123 B1,223 C2,234 D3,678 D1,343
La plantilla:
<?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>
El resultado será:
Puedes encontrar mucha información en el Guía definitiva de JasperReports.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-15 19:19:43
IReports Campos personalizados para columnas (suma, media, etc.)
-
Haga clic con el botón derecho en Variables y haga clic en Crear variable
-
Haga clic en la nueva variable
A. Observe las propiedades a la derecha
-
Cambie el nombre de la variable en consecuencia
-
Cambie el Nombre de la clase de Valor al Tipo de datos correcto
A. Puede buscar haciendo clic en los 3 puntos
-
Seleccione el tipo correcto de cálculo
-
Cambiar la expresión
A. Haga clic en el pequeño icono
B. Seleccione la columna para la que desea hacer el cálculo
C. Haga clic en finalizar
-
Establecer la Expresión del valor inicial en 0
-
Establezca el tipo de incremento en none
- Deje el nombre de la Clase de Fábrica del Incrementador en blanco
-
Establezca el tipo de reinicio (generalmente informe)
-
Arrastre un nuevo Campo de Texto a la etapa (Generalmente en el Último Pie de Página, o Pie de columna)
- Haga doble clic en el nuevo Campo de texto
- Borrar la expresión"Campo de texto"
Seleccione la nueva variable
-
Haga clic en finalizar
- Coloque el nuevo texto en una posición deseable
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-12 18:55:33