
Son günlerdeki halimizi anlatmak için bu resme bakmak yetmez... Yaşamak lazım buyruuun...
aklımızdan geçenler.....
Not: Resmin ne alâkası var diye içinden geçirenlere cevap: bir alâkası yok... Öylesine! :-))
JRRaporlama Java Kütüphanesi kaynak kodları:
JRRaporlama.jar dosyası:
Yukarıdaki JRRaporlama kütüphanesi hemen indirip JSF Web uygulamaları veya JSF portletleriniz içerisinde kullanarak
HTML, PDF, Excel, Word gibi formatlarda Web veya portlet uygulamanız içersinde aşağıdaki gibi gösterebilirsiniz.
RaporOlustur metodu:
public java.lang.String RaporOlustur(javax.faces.context.FacesContext fc,
int raporTuru,
java.lang.String dBDriver,
java.lang.String dBConnectString,
java.lang.String dBUserName,
java.lang.String dBUserPassword,
java.lang.String reportFileName,
java.lang.String ReportFolderPath,
java.lang.Object[][] parameters)
RaporOlustur metodu IReport ile olusturulmus olan rapor dosyasini kullanarak istenilen formatta rapor alabilmeyi saglar. Bu metod kendi Web uygulamaniz icerisinde kullanilir.
Alabileceginiz rapor formatlari PDF, Word/RTF, Excel ve Html'dir.
Html biciminde rapor istiyorsaniz kendi Web uygulamanizin web.xml dosyasina asagidaki kismi ekleyiniz.
<servlet>
<servlet-name>ImageServlet</servlet-name>
<servlet-class>jrraporlama.ImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ImageServlet</servlet-name>
<url-pattern>/image</url-pattern>
</servlet-mapping>
Web uygulamanizda yapmaniz gereken diger islemler:
· JRRaporlama.jar dosyasini uygulamanizin classpath'ine ekleyiniz.
· JasperReports kitapligini http://www.jasperforge.org/ adresinden indiriniz.
Indirdiginiz dosyadan asagidaki kitapliklari uygulamanizin classpath'ine koyabileceginiz gibi Tomcat'in ../common/lib/ext veya ../lib/ext, SunAS icin ise ../domains/{your-domain}/lib klasorune koyabilirsiniz.
jasperreports-2.0.2-javaflow.jar
jasperreports-2.0.2.jar
commons-beanutils-1.7.jar
commons-collections-2.1.jar
commons-digester-1.7.jar
commons-javaflow-20060411.jar
itext-1.3.1.jar
poi-3.0.1-FINAL-20070705.jar
commons-logging-1.0.2.jar
jdt-compiler-3.1.1.jar
groovy-all-1.0.jar
jaxen-1.1.1.jar
jcommon-1.0.0.jar
jfreechart-1.0.0.jar
jpa.jar
poi-3.0.1-FINAL-20070705.jar
Parametreler:
externalContext
-
Web uygulamanizdan this.getExternalContext() seklinde bu paramtereyi deger gecirebilirsiniz. Bu paramtre ile Http response ve request'i elde edilir ve Web uygulamanizin Web sayfasina rapor hazirlanarak gonderilir. JRRaporlama kitapligi JSF 1.1 ve JSF 1.2 (WoodStock) kullanilabilinir. Ancak JSF'de rapor sonrasi asagidaki komut olmaldir. this.getFacesContext().responseComplete();
raporTuru
- Alinacak raporun turu
Rapor.PDF, Rapor.DOC, Rapor.XLS, Rapor.HTML olabilir.
dBDriver
- Veritabani surucusu
MySQL icin: com.mysql.jdbc.Driver, Oracle icin: oracle.jdbc.OracleDriver
dBConnectString
- Veritabani baglantisi karakter katari
MySQL icin ornek: jdbc:mysql://localhost:3306/test, Oracle icin ornek: jdbc:oracle:thin:@localhost:1521:test
dBUserName
- Veritabani kullanici adi
dBUserPassword
- Veritabani kullanicisinin parolasi
reportFileFullPath
- Rapor dosyasinin tam yolu ve adi
Örnek : d:/test/test1.jrxml
subReportFolderPath
- Raporun alt raporlari var ise alt raporlarin oldugu klasor
Örnek : d:/test/subreports/
parameters
- 2 boyutlu Object sınıfında JasperReports sablonuna gecirilecek parametreler
Örnek :
jrraporlama.Rapor rapor = new jrraporlama.Rapor();
Object[][] parametreler = new Object[1][2];
parametreler[0][0] = "param1";
parametreler[0][1] = "deger1";
String sonuc = rapor.RaporOlustur(this.getFacesContext(),
rapor.HTML,
"com.mysql.jdbc.Driver",
"jdbc\:mysql\://localhost/test",
"testuser",
"password",
"test.jrxml",
"c:/test" ,
parametreler);
if (sonuc != null) {
alert1.setType("error");
alert1.setSummary(sonuc);
}
* Netbeans 6.1 portlet desteği ile Visual portlet geliştirdiğimizde, aşağıda belirtilen kısmı web.xml dosyasından silmez isek "deploy" aşamasında aşağıdaki hata Glassfish server.log dosyasında görülecektir.
Error loading deployment descriptors for module [portlet1] Line 132 Column 11 -- Deployment descriptor file WEB-INF/web.xml in archive [portlet1]. cvc-complex-type.2.4.a: Invalid content was found starting with element 'taglib'. One of '{"http://java.sun.com/xml/ns/javaee":jsp-property-group}' is expected.;_RequestID=80651ab6-2ae1-4e3d-a686-a1eeec206d84;"DPL8011: autodeployment failure while deploying the application : Error loading deployment descriptors for module [portlet1] Line 132 Column 11 -- Deployment descriptor file WEB-INF/web.xml in archive [portlet1]. cvc-complex-type.2.4.a: Invalid content was found starting with element 'taglib'. One of '{"http://java.sun.com/xml/ns/javaee":jsp-property-group}' is exected.
Bu hatayı ortadan kaldırmak için web.xml dosyasından aşağıdaki kısmı siliniz.
<jsp-config>
<jsp-property-group>
<url-pattern>*.jspf</url-pattern>
<is-xml>true</is-xml>
</jsp-property-group>
</jsp-config>
* Portletiniz doğru bir şekilde "deploy" edilmiş olsa bile örneğin bir butona bastığınızda sayfa tazelenecek ancak butona bağlamış olduğunuz kod çalışmayacaktır. Aşağıdaki bölümü portlet.xml dosyasına ekleyiniz (hemen </portlet-app>'den önce)
<container-runtime-option>
<name>javax.portlet.escapeXml</name>
<value>false</value>
</container-runtime-option>
} catch (IOException e) {
}
return prop;
}
private void writeToPropertiesFile(Properties prop) {
// Write properties file.
try {
prop.store(new FileOutputStream("data.properties"), null);
} catch (IOException e) {
}
}
private String readKey(Properties prop, String key)
{
return prop.getProperty(key);
}
private void writeKey(Properties prop, String key, String value)
{
prop.setProperty(key, value);
}