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 중국어 웹사이트의 기타 관련 기사를 참조하세요!