Page tree
Skip to end of metadata
Go to start of metadata

Design Of Jasper Report

Rapor hazırlamak için ilk önce ilgili modulün alt yapısı rapor hazırlamaya uygun hale getirilmelidir. Raporun çıkartılacağı ekrana yazdır butonu konulur.

Yapılacak olan raporda kullanılacak tabloların ihtiyaçlarına göre ya customQuery yazılır, ya tablolar arasında foreign key ile bağlantı varsa reverse collection adlı yapı ile ana tablolaya diğer tabloları bağlanır, ya da rapor için tüm veriler tablodan çekilecek düzeyde ise yalnızca ilgili tablo ya da tabloları söylemesi yeterlidir.

Kayıt-Detay, Liste, Tek kayıt olmak üzere üç tip rapor tasarımı vardır.

Liste rapor türünde ana kayıt yok sadece detay kayıt vardır. Bu detay kayıt birden fazla veri döndürür.

Tek kayıt rapor türünde ise 1- 1 eşleşme vardır. Bir kayıt için bir değer döndürülür.

*Veri seti rapordaki verileri karşılıyorsa reverse collection yapısı kullanılır.

Bu sayede ana veri seti seçildiğinde diğer tabloların verileri bu tabloyla ilişkilendirilerek seçimi kolaylaştırılır.

Alt yapıyı rapor hazırlamaya uygun hale getirmek ve oluşturulacak raporun çıktısını görebilmek için yazdır butonu eklenir.

Eğer raporda parametre varsa yazdır butonuna parametreler geçirilir.

Registration Details

Kayıt-detay rapor türünde bir ana kayıt birde ana kayda bağlı detay kayıtlar bulunur. 1-n eşleşme vardır. Ana tablo verileri tek kayıt döndürürken detay tablo verileri birden fazla değer döndürür.

İlgili modülün altında bulunan Raporlar-Rapor Tanımları sayfasına gidilir. Rapor tanımları sayfasında  butonuna tıklanarak rapor tanım ekranı açılır.

Açılan sayfada ilk adım rapor tanımının yapıldığı yerdir. Raporun adı yazılır, varsa ilgili açıklaması eklenir ve rapor türü seçilerek ileri tuşuyla ikinci adıma geçilir..

İkinci ana veri seti kısmında ise veri setinden kullanılacak olan tablo seçilir. Sağ alt köşede bulunan tüm alanlar içerisinde listelenen raporda kullanılacak alanlar seçilerek  butonu ile seçili alanlar kısmına aktarımı sağlanır.

Raporda parametre verilecek ise aşağıda bulunan alanlar bölümüne gidilerek seçimi sağlanır. Alanlar bölümünün altında bulunan  butonuna tıklanarak, listelenilen alanlar içerisinden kullanılacak parametre seçilir.

Ana veri seti içerisindeki işlemler bittikten sonra ileri butonu ile detay veri seti sayfası açılır.

Raporda çoklanacak olan(detay) verilerin seçimi bu adımda gerçekleştirilir. Ana veri seti ekranında verilerin seçimi için yapılan tüm işlemler bu sayfada da tekrarlanır. Örneğin ilgili tablo adı veri setinden seçilir, tüm alanlardaki veriler seçili alanların aktarımı sağlanır vs.

Detay veri seti ekranındaki işlemler bittikten sonra ileri butonu ile filtre ekranına gidilir. Ana ve Detay veri setinde seçilen parametreler filtre ekranında listelenir.

Id nesnesinin, bileşen adlı kolondan Number adlı değer ataması gerçekleştirilir. Daha sonra id değerini yazdır butonun koyulduğu hizmet fonksiyona şu şekilde (map.put("id", personelId.getValueLong());) yazılması gerekmektedir. Burada dikkat edilmesi gereken husus önceki ekranda çıkan parametrik değerin ismi(id) ile bu fonksiyona geçilecek olan parametrenin ismi aynı olmalıdır. Aksi halde rapor yazdırılmaya çalışıldığında hata verir. (map.put("id", personelId.getValueLong());) .

Son butonuna tıklayarak rapor için query ve tasarım alt yapısı oluşturulmuş olur.

Resimde 1 numara ile gösterilmiş Hizmet belgesi adlı alan raporun Querysini oluşturmakta olup, altındaki 2 numara ile belirtilmiş olan Hizmet Belgesi adlı alan ise rapor tasarımıdır. Tasarım üzerinde istenilen formata ulaşılması için resimde gösterilen 3 numaralı alan tıklatılıp rapor tasarımı indirilir. Yukarıdaki Şekil-1 deki format elde edildikten sonra kaydedilip 6 numaralı sorgu dosyanı güncelle ikonu ile sisteme yüklenilir. Rapora daha sonra eklenilmesi gereken fieldlar olursa 1 numaralı alan üzerine çift tıklanılarak de yukarıda anlatıldığı gibi fieldlar sol tarafa atıldıktan sonra 7 numaralı alana tıklanarak yeni eklenen fieldların güncellemesi sağlanır. 8 numaralı alan ise sistemin kendi oluşturduğu tasarıma dönmesi demektir. 2 numaralı alana çift tıklanarak 4 numaradaki dahili kod alanı girilir buradaki dahili kod rapor ile ekran arasındaki bağlantıyı sağlamak içindir.

Sonraki adım eclipse üzerinden rapor hangi ekrana ait ise(PersonelConst.java) o ekranın const dosyasına gidilerek, yukarıda 4 numaralı alana verdiğimiz dahili kod const dosyasına şu şekilde ” HIZMETBELGESI("ÇALIŞAN PERSONELİN DURUMUNU GÖSTERİR ÇİZELGE");” tanımlanır. Bu adım rapor türü(liste, tek kayıt, kayıt-detay) ne olursa olsun standart aynı işlem yapılır. Daha sonra ilgili ekranın reports dosyasına gidilerek (personel. reports. xml) initDataSet’i eklenilir.

Yukarıda gösterilen 1 numaralı alan const dosyası ve rapor tasarım ekranında tanımladığımız dahili kod olmalıdır. Bu alan const, report ve rapor arasında bağlantıyı sağlar. 7 numaralı ReportDefination alanı rapor tanımının yapıldığı alan olup 8 numaralı ReportDesign alanı ise rapor tasarımının tanımlandığı alandır. 2 numaradaki id key alanı ise ReportDesign ve ReportDefinition arasındaki bağlantıyı sağlar. Bu alanda yazılan hizmetbelgesi dahili kod ile aynı olmalıdır. 3 numaradaki adı kısmı raporun adını belirttiğimiz alandır. 4 numarada ki türü fieldı her rapor türünde aynı değildir. Tek kayıt türündeki raporlarda “0” , kayıt-detay türündeki raporlarda ”1” ve liste türündeki raporlarda “2” olarak yazılır. ReportDefination da bulunan 6 numaralı alan(.jexprqd) ise sisteme yükleyeceğimiz raporun adı olmalıdır ve bu alan rapor tasarımı ile ilgilidir. ReportDesign daki 6 numaralı (.jrxml)alan ise raporun query ile ilgili olup sisteme yüklenecek olan query dosyası ile aynı isimli olmalıdır. 5 numaralı alan ise raporun dahili kodudur.

 

  • No labels