>Java >java지도 시간 >JasperReports 보고서에 JavaBean의 목록 속성을 표시하는 방법은 무엇입니까?

JasperReports 보고서에 JavaBean의 목록 속성을 표시하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-29 22:52:11247검색

How to Display a JavaBean's List Property in a JasperReports Report?

JRBeanCollectionDataSource를 사용하여 JavaBean의 java.util.List에서 데이터에 액세스하는 방법

이 가이드에서는 JavaBean에 저장된 데이터를 표시하는 방법을 설명합니다. JRBeanCollectionDataSource를 사용하는 JavaBean의 목록 속성 보고합니다.

문제:

java.util.List 값을 보유하는 속성이 있는 JavaBean을 생각해 보세요. 보고서의 세부 정보 밴드 내에서 이 목록의 데이터를 어떻게 추출하고 표시할 수 있습니까?

해결책:

이를 달성하기 위해 다음 두 가지 주요 기술을 활용할 수 있습니다.

1. _THIS 표현식 사용:
필드 표현식 내에서 _THIS 표현식을 활용하여 JavaBean의 현재 인스턴스에 액세스합니다. 이를 통해 Bean에서 java.util.List 속성을 추출할 수 있습니다.

2. 세부 밴드의 목록 구성 요소:
세부 밴드에 목록 구성 요소를 사용합니다. _THIS 표현식을 사용하여 얻은 java.util.List를 래핑하는 새 JRBeanCollectionDataSource에 해당 DataSourceExpression을 바인딩합니다. 그런 다음 목록 내용 내에서 TextField를 정의하여 목록의 개별 값을 표시합니다.

예제 코드:

JavaBean:

public class BeanWithList {

    private List<String> cities;
    private Integer id;

    // public getters for bean properties

}

JRXML 파일:

<field name="id" class="java.lang.Integer"/>
<field name="cities" class="java.util.Collection"/>

<detail>
    <band height="20">
        <textField>
            <reportElement x="0" y="0" width="100" height="20"/>
            <textFieldExpression><![CDATA[$F{id}]]></textFieldExpression>
        </textField>
        <componentElement>
            <reportElement x="100" y="0" width="400" height="20"/>
            <jr:list>
                <datasetRun subDataset="dataset1">
                    <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{cities})]]></dataSourceExpression>
                </datasetRun>
                <jr:listContents height="20" width="400">
                    <textField>
                        <reportElement x="0" y="0" width="100" height="20"/>
                        <textFieldExpression><![CDATA[$F{city}]]></textFieldExpression>
                    </textField>
                </jr:listContents>
            </jr:list>
        </componentElement>
    </band>
</detail>

결과:

보고서에는 도시 속성에 저장된 도시 목록과 함께 JavaBean의 ID가 표시됩니다.

위 내용은 JasperReports 보고서에 JavaBean의 목록 속성을 표시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.