본문 바로가기
📚Framework & Library/JasperReports

[JasperReports] 04. Parameter, Variable, Dataset (Style)

by inbeom 2023. 10. 19.
728x90
JasperReports에 데이터를 삽입하는 방법

 

1. Parameter

Parameter:

외부에서 값을 전달받아 사용할 수 있는 변수 동적으로 값을 생성하거나 보고서의 동작을 제어하는 데 사용된다.

<Design>

<Source>
<!-- 1. parameter 정의:-->
<parameter name="ReportTitle" class="java.lang.String"/>

<!-- 2. parameter 사용:-->
<textField>
	<reportElement x="0" y="0" width="100" height="20"/>
	<textElement/>
	<textFieldExpression><![CDATA[$P{ReportTitle}]]></textFieldExpression>
</textField>
// 3. java) parameter 전달:
Map<String, Object> parameters = new HashMap<>();
parameters.put("ReportTitle", "Sales Report");
JasperPrint jasperPrint = JasperFillManager.fillReport("YourReport.jasper", parameters, dataSource);

 

 

2. Variable

Variable:

데이터를 계산하고 저장하기 위한 요소 이를 통해 보고서에서 다양한 계산을 수행할 수 있.

<Design>

<Source>
<!-- 1. variable 정의:-->
<variable name="TotalSales" class="java.lang.Double" calculation="Sum">
	<variableExpression><![CDATA[$F{SaleAmount}]]></variableExpression>
</variable>

<!-- 2. variable 사용:-->
<textField>
	<reportElement x="0" y="0" width="100" height="20"/>
	<textElement/>
	<textFieldExpression><![CDATA[$V{TotalSales}]]></textFieldExpression>
</textField>
// 3. java) variable 사용:
Double totalSales = (Double) jasperPrint.getVariablesMap().get("TotalSales").getValue();

 

 

3. Dataset

Dataset:

보고서에 표시할 데이터를 정의하고 제공하, 데이터 소스에서 가져온 데이터를 JasperReports 엔진이 이해할 수 있는 형식으로 변환하는 역할을 한다.

<Design>

<Source>
<!-- 1. Dataset 정의 및 구성:-->
<subDataset name="SampleDataset">
	<field name="ProductID" class="java.lang.Integer"/>
	<field name="ProductName" class="java.lang.String"/>
	<!-- 필요한 데이터 필드들을 정의 -->
</subDataset>

<!-- 2. table(chart)에 적용:-->
<componentElement>
	<reportElement x="0" y="0" width="550" height="20"/>
	<jr:table>
		<datasetRun subDataset="SampleDataset"uuid="aa05ad38">
			<dataSourceExpression><![CDATA[$P{dsSummaryBySystem}]]>
			</dataSourceExpression>
		</datasetRun>
		<!-- 이하에는 테이블의 컬럼 및 디자인이 정의된다. -->
	</jr:table>
</componentElement>
// 3. java) variable 사용:
JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(myList);
parameters.put("SampleDataset", dataSource);

 


 

Style Setting

Style:

스타일을 지정하여 보고서 요소들의 모양을 변경할 수 있다. (font, color, border)

  • style를 적용하는 방법은 html에 css를 적용하는 방법과 매우 유사하다.

1. Style 정의:
<style name="TitleStyle" fontName="Arial_Bold" fontSize="18" isBold="true" forecolor="#333333"/>

2. Style 적용:
<textField>
	<reportElement x="0" y="0" width="100" height="20"/>
	<textElement style="TitleStyle"/>
	<textFieldExpression><![CDATA["Title"]]></textFieldExpression>
</textField>

3. Style 적용 - Table:
<style name="Table 4_TH" mode="Opaque" backcolor="#F0F8FF">
	<box>
		<pen lineWidth="0.5" lineColor="#000000"/>
		<topPen lineWidth="0.5" lineColor="#000000"/>
		<leftPen lineWidth="0.5" lineColor="#000000"/>
		<bottomPen lineWidth="0.5" lineColor="#000000"/>
		<rightPen lineWidth="0.5" lineColor="#000000"/>
	</box>
</style>

<jr:tableFooter style="TestStyle" height="30" rowSpan="1">
<jr:columnHeader style="TestStyle" height="30">
<jr:detailCell style="TestStyle" height="30">

 

 

728x90