2013-04-30 6 views
1

을 사용하여 상위 5 개 레코드를 표시했습니다. iReport 버전 4.0.1과 상위 5 개 레코드 만 합치기를 원합니다.iReport를 사용하는 상위 5 개 레코드의 총계

누적 방법을 사용해 보았지만 작동했지만 누적 합계가 5 개 레코드 인 반면 5 개 레코드는 총계 만 필요했습니다. 어떤 도움? 당신의 요약 변수에

+0

이 보인다 : 여기

은 나를 위해 작동 일부 샘플 코드입니다. 나는 내 대답을 편집했다. 먼저 성명서에서 : 그리고 그 것이 작동하는지 확인하십시오. – Lisa

답변

0

는에 변수 표현을 설정하려고 :

$V{REPORT_COUNT} <= 5 ? $F{my_value} : 0 

과 합계로 계산을 설정합니다. 내 그루비가 약간 녹슨처럼 죄송합니다

<?xml version="1.0" encoding="UTF-8"?> 
<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="average_of_averages" language="groovy" pageWidth="612" pageHeight="792" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="b9853d5e-8a8a-4721-9db0-5ea8f8a25db5"> 
    <property name="ireport.zoom" value="1.0"/> 
    <property name="ireport.x" value="0"/> 
    <property name="ireport.y" value="0"/> 
    <queryString> 
     <![CDATA[SELECT * FROM (
SELECT 
'Set_1' AS myset 
, 50 AS myscore 
FROM dual 
UNION ALL 
SELECT 
'Set_1' AS myset 
, 25 AS myscore 
FROM dual 
UNION ALL 
SELECT 
'Set_1' AS myset 
, 75 AS myscore 
FROM dual 
UNION ALL 
SELECT 
'Set_1' AS myset 
, 95 AS myscore 
FROM dual 
UNION ALL 
SELECT 
'Set_1' AS myset 
, 35 AS myscore 
FROM dual 
UNION ALL 
SELECT 
'Set_1' AS myset 
, 15 AS myscore 
FROM dual 
UNION ALL 
SELECT 
'Set_1' AS myset 
, 65 AS myscore 
FROM dual 
UNION ALL 
SELECT 
'Set_1' AS myset 
, 10 AS myscore 
FROM dual 
UNION ALL 
SELECT 
'Set_1' AS myset 
, 95 AS myscore 
FROM dual 
) 
ORDER BY myset]]> 
    </queryString> 
    <field name="MYSET" class="java.lang.String"/> 
    <field name="MYSCORE" class="java.math.BigDecimal"/> 
    <variable name="mysetsum" class="java.math.BigDecimal" calculation="Sum"> 
     <variableExpression><![CDATA[$V{REPORT_COUNT} <= 3 ? $F{MYSCORE} : 0]]></variableExpression> 
     <initialValueExpression><![CDATA[0]]></initialValueExpression> 
    </variable> 
    <background> 
     <band splitType="Stretch"/> 
    </background> 
    <title> 
     <band height="25" splitType="Stretch"> 
      <textField> 
       <reportElement uuid="1ae3a434-c464-49ec-a295-e9e1472b31fd" x="0" y="0" width="572" height="25"/> 
       <textElement textAlignment="Center" verticalAlignment="Middle"/> 
       <textFieldExpression><![CDATA["Top 3 Sum"]]></textFieldExpression> 
      </textField> 
     </band> 
    </title> 
    <detail> 
     <band height="20" splitType="Stretch"> 
      <staticText> 
       <reportElement uuid="6cbc371f-144c-4cb7-be0e-55d588c0f437" x="50" y="0" width="100" height="20"/> 
       <textElement/> 
       <text><![CDATA[Score:]]></text> 
      </staticText> 
      <textField> 
       <reportElement uuid="4c311c34-5fe0-404e-bcd0-d2e982cdaaa5" x="150" y="0" width="100" height="20"/> 
       <textElement/> 
       <textFieldExpression><![CDATA[$F{MYSCORE}]]></textFieldExpression> 
      </textField> 
     </band> 
    </detail> 
    <summary> 
     <band height="42" splitType="Stretch"> 
      <textField pattern="###0.00"> 
       <reportElement uuid="9c17a4a2-8f0c-4b5d-8fa1-2457dae948d6" x="150" y="10" width="100" height="20"/> 
       <textElement> 
        <font size="12" isBold="true"/> 
       </textElement> 
       <textFieldExpression><![CDATA[$V{mysetsum}]]></textFieldExpression> 
      </textField> 
      <staticText> 
       <reportElement uuid="6cbc371f-144c-4cb7-be0e-55d588c0f437" x="0" y="10" width="150" height="20"/> 
       <textElement> 
        <font size="12" isBold="true"/> 
       </textElement> 
       <text><![CDATA[Top 3 Sum:]]></text> 
      </staticText> 
     </band> 
    </summary> 
</jasperReport> 
+0

나는 당신의 방법을 시도했지만 효과가 없었습니다. 이것은 내 입력 ** $ V {REPORT_COUNT} <= 5 : $ TO {TOTALAMT}입니까? "0"**. 그것은 나에게 오류를 줬다. 오류를 다음과 같이 확인하십시오 :'보고서 표현식을 컴파일 할 때 오류가 발생했습니다. 클래스 파일 : org.codehaus.groovy.control.MultipleCompilationErrorsException : 시작 실패 : calculator_TopXhS_1367509788810_319469 : 177 : 인수 후 콜론이 잘못되었습니다. 해결 방법 : 콜론 앞에 복잡한 레이블 표현식을 괄호 안에 넣어야합니다 @ l ine 177, column 111. 1 오류 ' – Isaac

+0

? 및 : – Lisa

+0

나는 귀하의 새로운 해결책을 시도하고 다시 연락 할 것입니다. – Isaac

관련 문제