Perşembe, Ekim 26, 2006

Jasper Reports & iReport

Yaklaşık 2 sene evvel geliştirdiğimiz java tabanlı bir uygulama için "report engine" ihtiyacı ortaya çıktığında yöneticilerimizin aklında yüksek fiyatlarına rağmen güzel bir lisanslı tool almak vardı. Bildiğiniz gibi yazılım dünyasında raporlama aracı yazmak her baba yiğidin harcı değil. Yazılmış olanlar da çok pahalı. Bu yüzden yazılım geliştiriciler, geliştirdikleri ürünlerine ait raporlama isteklerini müşterilerine ad-hoc raporlama araçları aldırarak çözdürürler. Böylelikle geliştirdikleri ürünün maliyeti artmaz.

Biz o zaman yine open-source sevgisiyle yıldızı yeni yeni yükselmeye başlayan daha 1.0 versiyonu bile çıkmamış olan JasperReports'u incelemeye aldık. Lisanslı ürünlere karşı en büyün avantajı, bedava olması, devamlı gelişiyor olması ve ayrıca iReports isminde ayrı bir design editor'unun olmasıydı. Lisanslı bir ürün alsaydık, kendi ürünümüzü her bir müşteriye sattığımızda ayrıca lisans parası ödeyecektik. Biraz da mecburiyetten üst yönetime Jasper'i kabul ettirdik. Tabii daha sonra ne kadar doğru bir karar verdiğimizi tüm Java dünyasıyla birlikte gördük.

JasperReports' a ve iReports 'a ait özelliklere bir göz atmadan evvel JasperReports 'un geliştiricisi Teodor Danciu'nun bu işe nasıl başladığını anlatan röportajından ufak bir kısma göz atalım:

Work on JasperReports began in June 2001. First I put on paper some initial requirements and then I started to figure out possible solutions to the various technical challenges ahead. In September 2001 I already had some core functionality in place and I registered the project at Sourceforge.net without releasing any files. But right away I started to receive messages from possible users that were interested in a product like the one I have described on Sourceforge.net and I adopted the Open Source strategy that says you have to "release early, release often".

The feedback received from the community boosted my interest in the project and soon my priorities were adapted to suit users' demand for new features. I plan to bring JasperReports to its next level of usability by adding interesting new features that will make it more appealing and useful to its users.

JasperReports ve iReports'un geliştiricileri daha sonra birleşerek JasperSoft isimli profesyonel bir şirket kurdular ve şu an Jasper Reports konusunda danışmanlık veriyorlar.

JasperReports'un aşağıda detaylı anlatılan özellikleri arasında bence en önemlileri şunlar:

  • iReports gibi Java Swing tabanlı çok yetenekli bir tasarım aracının bulunması
  • Raporun bir kere tasarlanması, çıktının ise dilediğiniz formatta, (pdf, xml, csv, txt, vs.) kodda veya tasarımda değişiklik yapmadan yapılabilmesi
  • Crosstab, sub-report gibi sadece lisanslı ürünlerde bulunan profesyonel özelliklerinin bulunması
  • Çok büyük bir topluluk desteği olması nedeniyle sürekli yeni pluginlerin geliştirilmesi (Çok güzel Eclipse pluginleri mevcut)
  • Hibernate gibi open-source araçlara desteğinin, ayrıca Spring gibi framework'lerin Jasper Reports'a desteğinin bulunması.
  • Raporların ister uygulamanız içine gömülü, isterseniz de ayrı bir raporlama sunucusunda çalışabiliyor olması.
  • Her bir rapor objesini baştan java nesnelerine çevirerek cache'lediği için yüksek performansla çalışması.
  • Tabii ki bir de Jasper Reports'un GNU Lesser GPL lisans modelini kullanıyor olması.

Eğer JasperReports hakkında kısa sürede ama özet bilgiye sahip olmak isterseniz aşağıdaki flash animasyona bir göz atın derim:

http://media.techtarget.com/audioCast/TSSCOM/jasperreports.html

Diğer bir kısa tutorial da :

http://www.ensode.net/jasperreports_intro.html

Detaylı bilgi için de JasperReports'un ve iReport'un resmi sitelerini inceleyebilirsiniz.

http://jasperforge.org/sf/projects/jasperreports

http://jasperforge.org/sf/projects/ireport

http://www.jaspersoft.com

Key Benefits
Lowest TCO
  • LGPL licensing allows free distribution
  • Low TCO enables reporting to be broadly distributed
Upgrade Path
  • Migrate to JasperDecisions report server
  • JasperDecisions runs JasperReports natively
Supported
  • Large active community
  • Sponsored by a company
  • Comprehensive support, consulting and training
Direct to Print
  • Pixel-perfect reports with no need for post-production editing
Key Features

Embeddable
  • Embeddable Java reporting library
  • Enables embedding in any host application
  • No external reporting server required
  • Plug in Java and Groovy code
Complex Reports
  • Sub-reports easily handle highly complex layouts
  • Pixel-perfect page-oriented output for web or print
  • Report output in PDF, XML, HTML, CSV, XLS, RTF, TXT
  • NEW: Now with crosstabs
Integrated Charting
  • Comprehensive set of chart types
Internationalized and Localizable
  • Multi-language Unicode and other native encodings
  • Dynamic text localization
  • Localized date, number, and currency formatting
Scalable
  • High performance report generation
  • No limit to report size
Extensible
  • Supplement built-in expressions with Java or Groovy
  • Plug in Java code and Groovy code
Easy to Use
  • iReport visual report designer
  • Other Eclipse- and Swing-based designers available
  • Built-in Swing viewer
  • Extensive code examples
Standards Based
  • Written in Java
  • Report definitions in XML
Flexible Data Access
  • Multiple data sources of multiple kinds in one report
  • Built-in support for JDBC, EJB, POJO, Hibernate, XML
  • Extensible to any data source

6 Yorum:

Anonymous Adsız dedi ki...

Mustafa Bey,

Biz de Jasper'ı yeni keşfedenlerdeniz. Bir projemizde kullanmak istiyoruz. Ama Jasper'da JBoss portal üzerinde çalışacak JSR168'e uygun rapor nasıl geliştirilir çok anlayamadık. Bildiğiniz bir kaynak varsa yönlendirebilir misiniz? Teşekkürler

3:04 ÖS  
Anonymous Adsız dedi ki...

Merhaba Mustafa Bey,
Sizden iReport'un Subreport hakkında bir kaç bilgi almak isterim. Subreport kısmında doğrudan program tarafından veriler alınacak yani veri tabanı ile ilgisi olmayacak.Bu konuda yardımcı olmanızı rica eder iyi çalışmalar dilerim.

Ali Rıza

9:03 ÖS  
Anonymous Adsız dedi ki...

Anlaşılıyor ki Mustafa Bey'in amacı bilgi paylaşımından çok popülarite kazanmakmış...

6:15 ÖS  
Anonymous Adsız dedi ki...

Ya arkadaşlar haksızlık yapmayın adama, şarkıcı mı bu popülerlik kazansın ? blog yazdı diye meşhur olan yok henüz, ama kişisel zamanından harcayan, pek çok iyi niyetli adam var hayatta..

3:02 ÖS  
Blogger yılmaz dedi ki...

10.Tem.2011 11:55:16 org.apache.commons.digester.Digester error
SEVERE: Parse Error at line 8 column 30: cvc-complex-type.3.2.2: Attribute 'splitType' is not allowed to appear in element 'band'.
org.xml.sax.SAXParseException: cvc-complex-type.3.2.2: Attribute 'splitType' is not allowed to appear in element 'band'.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processAttributes(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at

12:42 ÖS  
Blogger Coder dedi ki...

Sesli Sohbet , Sesli Chat , Kameralı Sohbet , Arkadaşlık Sitesi
Site Hakkında: Sesli Sohbet, Sesli Chat, Kameralı Sohbet Yapabileceğiniz Ücretsiz Sosyal Paylaşım Sitesidir.

2:50 ÖÖ  

Yorum Gönder

Kaydol: Kayıt Yorumları [Atom]

<< Ana Sayfa