Java Reference
In-Depth Information
This expression was typed once to calculate the number of fixed-wing aircraft
reported, and again to calculate the total number of aircraft reported. This
duplication is not a good thing, since if we need to change the expression for any
reason we would have to do it twice. JasperReports allows us to assign report
expressions to a variable, eliminating the need to type the expression multiple times.
The following JRXML template is a modified version of the one we wrote in the
previous section. This version takes advantage of report variables to eliminate the
duplicate expression.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="ReportVariablesDemo">
<queryString>
<![CDATA[select (select count(*)
from aircraft_models am
where am.aircraft_type_id = 4) as
fixed_wing_single_engine_cnt,
(select count(*)
from aircraft_models am
where am.aircraft_type_id = 5) as
fixed_wing_multiple_engine_cnt,
(select count(*)
from aircraft_models am
where am.aircraft_type_id = 6) as rotorcraft_
cnt]]>
</queryString>
<field name="fixed_wing_single_engine_cnt" class="java.lang.Integer"/>
<field name="fixed_wing_multiple_engine_cnt" class="java.lang.
Integer"/>
<field name="rotorcraft_cnt" class="java.lang.Integer"/>
<variable name="fixed_wing_engine_cnt" class="java.lang.Integer">
<variableExpression>
<![CDATA[new Integer($F{fixed_wing_single_engine_cnt}.intValue() +
$F{fixed_wing_multiple_engine_cnt}.intValue())]]>
</variableExpression>
</variable>
<detail>
<band height="100">
<textField>
<reportElement x="20" y="0" height="20" width="500"/>
 
Search WWH ::




Custom Search