Thanks Chandu Shekar... Keeping it open for community in my blog site.
Aim : How to use parameter in GROUP BY statement ? Dynamically group the data in Jasper Studio 6.x
Example works on foodmart database.
JRXML Code :
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.0.0.final using JasperReports Library version 6.0.0 -->
<!-- 2015-02-12T15:41:46 -->
<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="case_56816" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="106066b5-8cc4-4e9d-92df-fa60c6cea9da">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<property name="ireport.jasperserver.url" value="http://localhost:8082/jasperserver-pro/"/>
<property name="ireport.jasperserver.report.resource" value="/public/Hummingbird/case_56816/case_56816_files/case_56816_jrxml"/>
<property name="ireport.jasperserver.reportUnit" value="/public/Hummingbird/case_56816/case_56816"/>
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="foodmart"/>
<parameter name="criteria" class="java.lang.String">
<defaultValueExpression><![CDATA["store"]]></defaultValueExpression>
</parameter>
<parameter name="groupBy" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA[($P{criteria} == "store") ? "employee.store_id,employee.department_id":($P{criteria} == "department")?"employee.department_id,employee.store_id":"employee.store_id, employee.department_id"]]></defaultValueExpression>
</parameter>
<queryString language="SQL">
<![CDATA[SELECT
SUM(employee."salary") AS employee_salary,
employee."store_id" AS employee_store_id,
employee."department_id" AS employee_department_id
FROM
"public"."employee" employee
GROUP BY $P!{groupBy}
LIMIT 5]]>
</queryString>
<field name="employee_salary" class="java.math.BigDecimal"/>
<field name="employee_store_id" class="java.lang.Integer"/>
<field name="employee_department_id" class="java.lang.Integer"/>
<title>
<band height="29" splitType="Stretch">
<textField>
<reportElement x="0" y="2" width="555" height="20" uuid="77dffc9a-1996-4f63-b704-fc1f213c4770"/>
<textFieldExpression><![CDATA[$P{groupBy}]]></textFieldExpression>
</textField>
</band>
</title>
<columnHeader>
<band height="20" splitType="Stretch">
<staticText>
<reportElement x="0" y="0" width="185" height="20" uuid="3d2abafe-8487-463f-b684-f309e94adb58"/>
<text><![CDATA[employee_salary]]></text>
</staticText>
<staticText>
<reportElement x="185" y="0" width="185" height="20" uuid="3f4f67b5-ec29-4185-a52a-4099492fdaff"/>
<text><![CDATA[employee_store_id]]></text>
</staticText>
<staticText>
<reportElement x="370" y="0" width="185" height="20" uuid="c7127794-4406-43e2-a057-acc5314fbf79"/>
<text><![CDATA[employee_department_id]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="21" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="185" height="20" uuid="5aa29ed2-1730-49ce-a4e8-3f5d71862385"/>
<textFieldExpression><![CDATA[$F{employee_salary}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="185" y="0" width="185" height="20" uuid="b189d5d9-a32c-4ad6-9ae9-47df69ed8da5"/>
<textFieldExpression><![CDATA[$F{employee_store_id}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="370" y="0" width="185" height="20" uuid="8f691afe-d989-4d72-9c91-70f61a3d500a"/>
<textFieldExpression><![CDATA[$F{employee_department_id}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
Aim : How to use parameter in GROUP BY statement ? Dynamically group the data in Jasper Studio 6.x
Example works on foodmart database.
JRXML Code :
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.0.0.final using JasperReports Library version 6.0.0 -->
<!-- 2015-02-12T15:41:46 -->
<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="case_56816" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="106066b5-8cc4-4e9d-92df-fa60c6cea9da">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<property name="ireport.jasperserver.url" value="http://localhost:8082/jasperserver-pro/"/>
<property name="ireport.jasperserver.report.resource" value="/public/Hummingbird/case_56816/case_56816_files/case_56816_jrxml"/>
<property name="ireport.jasperserver.reportUnit" value="/public/Hummingbird/case_56816/case_56816"/>
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="foodmart"/>
<parameter name="criteria" class="java.lang.String">
<defaultValueExpression><![CDATA["store"]]></defaultValueExpression>
</parameter>
<parameter name="groupBy" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA[($P{criteria} == "store") ? "employee.store_id,employee.department_id":($P{criteria} == "department")?"employee.department_id,employee.store_id":"employee.store_id, employee.department_id"]]></defaultValueExpression>
</parameter>
<queryString language="SQL">
<![CDATA[SELECT
SUM(employee."salary") AS employee_salary,
employee."store_id" AS employee_store_id,
employee."department_id" AS employee_department_id
FROM
"public"."employee" employee
GROUP BY $P!{groupBy}
LIMIT 5]]>
</queryString>
<field name="employee_salary" class="java.math.BigDecimal"/>
<field name="employee_store_id" class="java.lang.Integer"/>
<field name="employee_department_id" class="java.lang.Integer"/>
<title>
<band height="29" splitType="Stretch">
<textField>
<reportElement x="0" y="2" width="555" height="20" uuid="77dffc9a-1996-4f63-b704-fc1f213c4770"/>
<textFieldExpression><![CDATA[$P{groupBy}]]></textFieldExpression>
</textField>
</band>
</title>
<columnHeader>
<band height="20" splitType="Stretch">
<staticText>
<reportElement x="0" y="0" width="185" height="20" uuid="3d2abafe-8487-463f-b684-f309e94adb58"/>
<text><![CDATA[employee_salary]]></text>
</staticText>
<staticText>
<reportElement x="185" y="0" width="185" height="20" uuid="3f4f67b5-ec29-4185-a52a-4099492fdaff"/>
<text><![CDATA[employee_store_id]]></text>
</staticText>
<staticText>
<reportElement x="370" y="0" width="185" height="20" uuid="c7127794-4406-43e2-a057-acc5314fbf79"/>
<text><![CDATA[employee_department_id]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="21" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="185" height="20" uuid="5aa29ed2-1730-49ce-a4e8-3f5d71862385"/>
<textFieldExpression><![CDATA[$F{employee_salary}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="185" y="0" width="185" height="20" uuid="b189d5d9-a32c-4ad6-9ae9-47df69ed8da5"/>
<textFieldExpression><![CDATA[$F{employee_store_id}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="370" y="0" width="185" height="20" uuid="8f691afe-d989-4d72-9c91-70f61a3d500a"/>
<textFieldExpression><![CDATA[$F{employee_department_id}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
No comments:
Post a Comment