İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

JasperReports ArrayList üzerinden veri göndermek

Bolu Beyi

0
İyinet Üyesi
Katılım
7 Nisan 2010
Mesajlar
2,895
Reaction score
36
JasperReports ArrayList üzerinden veri göndermek

Daha önceki yazıda JasperReports kullanarak parametreler üzerinden HashMap yardımıyla veri göndermeyi göstermiştik. Şimdi ise ArrayLit yardımıyla nasıl veri yollayabileceğinizi göstereceğiz. Bunun için öncelikle veriyi saklayacağınız bir sınıf yaratın.

public class Data {

private String value1;
private String value2;

public Data(String value1,String value2){
this.value1 = value1;
this.value2 = value2;
}

public String getValue1() {
return value1;
}
public void setValue1(String value1) {
this.value1 = value1;
}
public String getValue2() {
return value2;
}
public void setValue2(String value2) {
this.value2 = value2;
}

}

Data nesnesinin içinde value1 ve value2 adında iki değişken tutuyoruz. Bunlara atayacağımız değerler oluşturacağımız raporun verisi olacak. Şimdi raporu oluşturacak koda bakalım;

final ArrayList<Data> reportRows = new ArrayList<Data>();
for(int i = 0; i < 10; i++){

reportRows.add(new Data(Integer.toString(i), Integer.toString(i * 2));

}
String jasperFileName = “design.jrxml”;
String outFile = “output”;

// veri kaynağını belirtiyoruz
final JRDataSource dataSource = new JRBeanCollectionDataSource(reportRows);
// jrxml dosyamızı belirtiyoruz
final JasperDesign jasperDesign = JRXmlLoader.load(jasperFileName);
final JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

// raporu oluşturuyoruz
JasperPrint print = JasperFillManager.fillReport(jasperReport, params, dataSource);
JRExporter exporter = new net.sf.jasperreports.engine.export.JRPdfExporter();
// pdf çıktısını oluşturuyoruz
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, outFile + “.pdf”);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.exportReport();

Raporumuzda ise ilk olarak değer tanımlamalarını yapmamız gerekiyor;

<field name=”value1″/>
<field name=”value2″/>

Daha sonra <detail> bandı içine rapor tasarımımızı oluşturuyoruz. <detail> bandını kullanmamızın sebebi dizi içindeki bütün değerler için bir tablo oluşturulması.

<detail>
<band height=”21″ splitType=”Stretch”>
<textField>
<reportElement x=”15″ y=”1″ width=”84″ height=”20″/>
<box>
<pen lineWidth=”0.25″/>
<topPen lineWidth=”0.25″/>
<leftPen lineWidth=”0.25″/>
<bottomPen lineWidth=”0.25″/>
<rightPen lineWidth=”0.25″/>
</box>
<textElement verticalAlignment=”Middle”/>
<textFieldExpression><![CDATA[$F{value1}]]></textFieldExpression>
</textField>
<textField>
<reportElement x=”99″ y=”1″ width=”77″ height=”20″/>
<box>
<pen lineWidth=”0.25″/>
<topPen lineWidth=”0.25″/>
<leftPen lineWidth=”0.25″/>
<bottomPen lineWidth=”0.25″/>
<rightPen lineWidth=”0.25″/>
</box>
<textElement textAlignment=”Center” verticalAlignment=”Middle”/>
<textFieldExpression><![CDATA[$F{value2}]]></textFieldExpression>
</textField>
</band>
</detail>
Kaynak
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst