У меня была рабочая версия iReport версии 4.1.3, в которой были необходимые проценты, итоги, средние значения и числа в тексте. Отчет и итоги / расчеты работали правильно для этого отчета. Мне нужна была другая версия, которая была точно такой же, но внутри групп. Я отредактировал mysql на заказ по группе Territory, затем добавил Report groups. Затем я изменил тип сброса на группу / сброс группы на территорию. Я также поиграл с изменением типа приращения также на Group / и приращения группы на Territory. В настоящее время я получаю отчет, в котором каждая строка базы данных создает отдельную страницу, а не итоги по территории.
Пример переменной:
<variable name="AverageAgeOver61" class="java.lang.Double" resetType="Group" resetGroup="Territory" incrementType="Group" incrementGroup="Territory">
<variableExpression><![CDATA[$V{TotalAgeOvr61}.equals(0) ? 0 : $V{TotalAgeOvr61} / $V{CountOver61}]]></variableExpression>
</variable>
<variable name="DomantTotalAge" class="java.lang.Double" resetType="Group" resetGroup="Territory" incrementType="Group" incrementGroup="Territory" calculation="Sum">
<variableExpression><![CDATA[$F{Dormant} ? $F{Age} : 0]]></variableExpression>
</variable>
<variable name="HighRiskPercentage" class="java.lang.Double" resetType="Group" resetGroup="Territory" incrementType="Group" incrementGroup="Territory">
<variableExpression><![CDATA[$V{totalSystems}.equals(0) || $V{totalSystems}.equals(null) ? 0 : $V{HighRiskSystemTotal} / $V{totalSystems}]]></variableExpression>
</variable>
<variable name="SeviceContractRiskPercentage" class="java.lang.Double" resetType="Group" resetGroup="Territory" incrementType="Group" incrementGroup="Territory">
<variableExpression><![CDATA[$V{HighRiskServiceTotal}.equals(0) || $V{HighRiskServiceTotal}.equals(null) ? 0:$V{HighRiskServiceTotal}/$V{CurrentServiceAmountTotal}]]></variableExpression>
</variable>
и примеры текстовых полей:
<group name="TerritoryById">
<groupExpression><![CDATA[$F{TerritoryId}]]></groupExpression>
<groupHeader>
<band height="150">
<textField>
<reportElement x="2" y="106" width="520" height="23"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="18"/>
</textElement>
<textFieldExpression><![CDATA[$P{ClientShort} + " Findings:\n"+
"a.\t"+new java.text.DecimalFormat("#,##0%").format($V{HighRiskPercentage}) +" of the systems are in the \"High Risk\" category \n"+
"b.\t"+new java.text.DecimalFormat("#,##0%").format($V{SeviceContractRiskPercentage})+ " of service contract revenue is in the \"High Risk\" category\n"+
"c.\t The average age for all systems in " +new java.text.DecimalFormat("#,##0").format($V{AvgAgeOfSystems}) + " months, with " +$V{PercentageOver3yrsOld}+ " of the systems over three years old.\n"+
" i.\t" + new java.text.DecimalFormat("#,##0%").format($V{Percentage37To48})+ " -\t 37 to 48 months old,\t" + $V{CountAge37To48Qty} + " systems \n"+
" ii.\t " + new java.text.DecimalFormat("#,##0%").format($V{Percentage49To60})+ " -\t 49 to 60 months old,\t "+ $V{CountAge49To60Qty} + " systems \n"+
" iii.\t " + $V{Percentage61Months} + " \t 61+ months old,\t\t " + $V{CountOver61Qty} + " systems\n"+
"d.\t Domant Accounts:\t" +$P{ClientShort}+ " identifies account where there has not been any systems added to the service contract with in the last two years. While these accounts may have purchased upgrades, software and service the lack of system additions is of concern. For your territory, "+ $V{DomantAccts} + " of " + $V{totalCustomers}
+ " accounts, may be dormant. This accounts for " + new java.text.DecimalFormat("#,##0%").format($V{PercentageServiceRevenueDorm})+", "+ new java.text.DecimalFormat("\$#,##0.00").format($V{DomantServiceRevenue})+" of the service revenue and " +new java.text.DecimalFormat("#,##0%").format($V{PercentDomantUnits})+", "+ new java.text.DecimalFormat("#,##0").format($V{DormantUnitsTotal}) + " of the units on service contracts."]]></textFieldExpression>
</textField>
и существует подотчет, в котором перечислены первые десять:
«д. Десять клиентов, получивших доход от услуг, составляют« + новый java.text.DecimalFormat («#, ## 0%»). format ($ V {PercentageTotal}) + «доход от услуг со средним значением» + новый java.text.DecimalFormat ("#, ## 0%"). format ($ V {PercentageHighRisk}) + "дохода от обслуживания в категории \" Высокий риск \ "."