JASPER kullanarak dinamik rapor alma
Şimdi jasper kullnarak dinamik rapor almayı bir örnek üzerinden açıklayayım (bu örnek eclipse için hazırlanmıştır) 1. Yeni bir java projesi açıp, gerekli jar ları indirip class path e eklemek jasperreports-1.3.4.jar commons-beanutils.jar commons-collections.jar commons-digester.jar commons-logging.jar itext.jar 2. Kullanabileceğimiz hazır bir database tablosu varsa bu adımı geçebilirsiniz yoksa örnekteki gib bir database tablosu oluşturun buradaki vereceğim örnek oracle için hazırlanmıştır siz istediğiniz database server kullanıp onun için tablo hazırlayıp ona uygun değişiklikleri yaparsanız kod sorunsuz çalışır. CREATE TABLE element_table ( element_id NUMBER, element_name VARCHAR2(50), element_description VARCHAR2(1000), category_id NUMBER, download_counter NUMBER); ve tabi tabloya veri girmelisiniz INSERT INTO element_table (element_id,element_name,element_description,category_id,download_counter) VALUES (element_id_seq.NEXTVAL,’Ntv ‘,’NTV haberlerine cebinizden ulaşmanın en kolay yolu!’,6,0); ………… 3.Şimdi jasper ı kullnırken bizim için en can alıcı malzeme olan jrxml oluşturmaya çalışalım; jasperReport.jrxml diye bir dosya açıp içini aşağıdaki gibi doldurun; <?xml version="1.0" encoding="UTF-8" ?> <!-- Created with iReport - A designer for JasperReports --> <!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd"> <jasperReport name="SimpleReport"> <parameter name="rnum" /> <queryString> <![CDATA[select element_id,element_name,element_description from element_table where rownum < $P{rnum}]]> </queryString> <field name="element_id"/> <field name="element_name"/> <field name="element_description"/> <pageHeader> <band height="30"> <staticText> <reportElement x="0" y="0" width="69" height="24"/> <textElement verticalAlignment="Bottom"/> <text> <![CDATA[Element Id: ]]> </text> </staticText> <staticText> <reportElement x="140" y="0" width="69" height="24"/> <text> <![CDATA[Element Name: ]]> </text> </staticText> <staticText> <reportElement x="280" y="0" width="69" height="24"/> <text> <![CDATA[Element Description: ]]> </text> </staticText> </band> </pageHeader> <detail> <band height="30"> <textField> <reportElement x="0" y="0" width="69" height="24"/> <textFieldExpression> <![CDATA[$F{element_id}]]> </textFieldExpression> </textField> <textField> <reportElement x="140" y="0" width="69" height="24"/> <textFieldExpression> <![CDATA[$F{element_name}]]> </textFieldExpression> </textField> <textField> <reportElement x="280" y="0" width="69" height="24"/> <textFieldExpression> <![CDATA[$F{element_description}]]> </textFieldExpression> </textField> </band> </detail> </jasperReport> 4.Şimdi de yukarıdaki jrxml i kullancak java kodumuzu yazalım ve çalıştıralım. import java.io.File; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.design.JRDesignQuery; import net.sf.jasperreports.engine.design.JasperDesign; import net.sf.jasperreports.engine.xml.JRXmlLoader; import net.sf.jasperreports.view.JasperViewer; public class JasperTest { public static void main(String args[]) { JasperReport jasperReport; JasperPrint jasperPrint; try { // load mysql driver DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); String s = "jdbc:oracle:thin:@<hostname>:<port>:<sid>"; Connection conn = DriverManager.getConnection(s, "user_name", "password"); jasperReport = JasperCompileManager .compileReport("jasperReport_demo.jrxml"); Map parameters = new HashMap(); parameters.put("rnum", "150"); jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn); // generates PDF JasperExportManager.exportReportToPdfFile(jasperPrint, "Simple_Report.pdf"); // generates HTML JasperExportManager.exportReportToHtmlFile(jasperPrint, "Simple_Report.html"); // generates XML JasperExportManager.exportReportToXmlFile(jasperPrint, "Simple_Report.xml", true); System.out.println("FIN"); } catch (JRException jrException) { System.out.println("JR"); jrException.printStackTrace(); } catch (SQLException sqlException) { System.out.println("SQl"); sqlException.printStackTrace(); } } } Jasper Report hakkında daha detaylı bilgi için : http://jasperforge.org/website/jasperreportswebsite/trunk/index.html?group_id=252
Categories: Jasper
Jasper, jasper example, jasper reporting, java jasper, java reporting tool
Çok faydalı bir yazı olmuş, eline sağlık
teşekkürler!