İyinet'e Hoşgeldiniz!

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

Kayıt Ol!

Parametreden Grafik Göndermek

Bolu Beyi

0
İyinet Üyesi
Katılım
7 Nisan 2010
Mesajlar
2,895
Reaction score
36
JasperReport oldukça kuvvetli ve birçok özellikler sunan bir raporlama aracı olduğundan birçok firma ve kuruluş tarafından kabul görmektedir. Özellikle sunduğu geniş özellikler ve Java içinden çağırılabilmesi sayesinde geliştirdiğiniz raporlama arabirimlerinde bir numaralı tercihiniz olacaktır. Bu örnekte JChart kullanarak bir grafik çizip bunu JasperReports içinden çağırmayı göstereceğiz.

İlk olarak elimizdeki veriyle basit bir XY – grafiği çizelim;

// Eğriye gönderilecek veri dizileri – birden fazla eğri gönderebilirsiniz
XYSeriesCollection dataset = new XYSeriesCollection();
// eğri için veriler
for(int j = 1; j < 4; j++){
XYSeries xy = new XYSeries(“Eğri ” + j);
for(int i = 0; i < 7; i++){
xy.add(i, j * i);
}
dataset.addSeries(xy);
}

JFreeChart chart = ChartFactory.createXYLineChart(
“Eğri Serisi”, // başlık
“X Değerleri”, // x ekseni başlığı
“Y Değerleri”, // y ekseni başlığı
dataset, // verş
PlotOrientation.VERTICAL,
true,
true,
false);
XYPlot plot = chart.getXYPlot();
SymbolAxis domainAxis = new SymbolAxis(“Gunler”, dates);
plot.setDomainAxis(domainAxis);
chart.setBackgroundPaint(Color.white);
plot.setOutlinePaint(Color.black);

Oluşturduğumuz grafikle ilgili veriler chart nesnesinde tutulmaktadır. Şimdi ise JasperReports’a göndereceğimiz HashMap’i oluşturalım.

HashMap parameters = new HashMap();
// 1200 x 360 ebatında grafiği çizdir
parameters.put(“myChart”, chart.createBufferedImage(1200, 360));
parameters.put(“bigHeader”, “Grafik Denemesi”);

Bu şekilde grafiğimizi çizip kaydetmiş olduk. Şimdi ise jasper.jrxml dosyasını çağırıp derleme yapan kodu yazalım. jrxml dosyası oluşturacağınız raporla ilgili tasarımı içermektedir.

// tasarım dosyasını yükle
JasperDesign jasperDesign = JRXmlLoader.load(“jasper.jrxml”);
// tasarımı derle
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
// rapora verileri yükle
JasperPrint print = JasperFillManager.fillReport(jasperReport, parameters);
// pdf çıktısını hazırla
JRExporter exporter = new net.sf.jasperreports.engine.export.JRPdfExporter();
// cikti dosyasının adını seç
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, “cikti.pdf”);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
// pdf dosyasını oluştur
exporter.exportReport();

Oluşturulan pdf dosyasına baktığınızda grafiğinizi göreceksiniz. Aşağıda jrxml dosyasının içeriği verilmiştir. Parametre tanımlarına dikkat ediniz.

<?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=”StreamingDurationperChannels” language=”groovy” pageWidth=”1220″ pageHeight=”1200″ orientation=”Landscape” columnWidth=”834″ leftMargin=”20″ rightMargin=”20″ topMargin=”20″ bottomMargin=”20″>
<style name=”Crosstab Data Text” isDefault=”false” hAlign=”Center”/>
<parameter name=”myChart” isForPrompting=”false”/>
<parameter name=”bigHeader” isForPrompting=”false”/>
<background>
<band splitType=”Stretch”/>
</background>
<pageHeader>
<band height=”418″ splitType=”Stretch”>
<textField>
<reportElement x=”0″ y=”0″ width=”1748″ height=”30″/>
<textElement>
<font size=”16″/>
</textElement>
<textFieldExpression><![CDATA[$P{bigHeader}]]></textFieldExpression>
</textField>
<image scaleImage=”RetainShape” hAlign=”Center” vAlign=”Middle” isUsingCache=”false”>
<reportElement key=”element-41″ mode=”Opaque” x=”0″ y=”58″ width=”1214″ height=”360″ forecolor=”#000000″ backcolor=”#FFFFFF”/>
<graphicElement fill=”Solid”>
<pen lineWidth=”0.0″ lineStyle=”Solid”/>
</graphicElement>
<imageExpression><![CDATA[$P{myChart}]]></imageExpression>
</image>
</band>
</pageHeader>
</jasperReport>
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.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

seo ajansı , sosyal medya yönetimi
Üst