Ana içeriğe atla

Java'da İreports İle Parametrik Rapor 2

Merhaba arkadaşlar geçen dersimizde parametrik rapor için bir IReports’da bir rapor oluşturmuştuk ve parametremizi belirlemiştik.
Bu dersimiz de bu parametreye post edeceğimiz java kodlarından bahsedeceğim.


Öncelikle database kısmında bir listeleme işlemi gerçekleştireceğim. Listeleceğim tablo Departman tablosu
public staticList<DepartmanDomain> listele() {

                               List<DepartmanDomain> liste = newArrayList<DepartmanDomain>();
                               Connection conn = getConnection();
                               try {
                                               Statement stmt = conn.createStatement();
                                               ResultSet rs = stmt.executeQuery("SELECT * FROM departman");

                                               while(rs.next()) {

                                                               DepartmanDomain siradakiDepartmanDomain = new DepartmanDomain();
                                                               siradakiDepartmanDomain.setId(rs.getInt("id"));
                                                               siradakiDepartmanDomain.setDepartmanAdi(rs
                                                                                              .getString("departmanAdi"));

                                                               liste.add(siradakiDepartmanDomain);
                                               }

                                               stmt.close();
                                               conn.close();
                               } catch(SQLException e) {

                                               e.printStackTrace();
                               }
DepartmanDao class’ın da Departman tablosunu kısaca bu şekilde listeletiyoruz.
Ardından bu listeleme methodunu Combobox’ımızın içerisinde çağırıyoruz.
finalJComboBox departmanBox = new JComboBox(DepartmanDao.listele()
                                                               .toArray());
Resim1;


Listeleme işlemimizi gerçekleştirdikten sonra Button nesnesi oluşturuyoruz.
JButton departmanButton = new JButton("Departman Raporu");
Ardından oluşturduğumuz bu buton nesnesine action listener veriyoruz aşağıdaki gibi.
departmanButton.addActionListener(newActionListener() {

                                               public voidactionPerformed(ActionEvent arg0) {
// Parametrik raporun yazılacağı kısım.
                                                                             
}
});
Ardından oluşturduğumuz bu action listener’ın içini dolduruyoruz aşağıdaki gibi.
departmanButton.addActionListener(newActionListener() {

                                               public voidactionPerformed(ActionEvent arg0) {

Connection baglanti = RaporDbConfig.getConnection();

                try {

DepartmanDomain secilenDepartmanDomain = (DepartmanDomain) departmanBox
                                                                                                              .getSelectedItem();
                                                                              System.out.println(secilenDepartmanDomain.getId());

                                                                              Mapmodel = new HashMap();

                                                                              model.put("id",secilenDepartmanDomain.getId());

                JasperPrint print =           JasperFillManager.fillReport("raporlar/departmanParams/departmanRaporu.jasper",model, baglanti);
     JasperViewer.viewReport(print, false);

                                                               baglanti.close();
                                                               } catch(JRException e1) {
                                                                              // TODOAuto-generated catch block
                                                                              e1.printStackTrace();
                                                               } catch(SQLException e1) {
                                                                              // TODOAuto-generated catch block
                                                                             
                                                                              e1.printStackTrace();
                                                               }

                                               }
                               });
Kısaca parametrik rapor için yukarıda ki işlemler yapıldı bu işlemleri açıklayacak olursak;
Connection baglanti = RaporDbConfig.getConnection();
Raporumuzun çalışması için doğru database , kullanıcı ve şifresi gerekmektedir. Bu yüzden Connection nesnesi oluşturuyoruz sonra RaporDbConfig.getConnection(); methodunda bulunan kullancı adı şifre ve database yolunu belirtiyoruz ardından;
DepartmanDomain secilenDepartmanDomain = (DepartmanDomain) departmanBox
                                                                                                              .getSelectedItem();
DepartmanBox nesnesini DepartmanDomain ile cast ediyoruz. Bir önceki dersimiz olan(JCombobox'ta Database'den Veri Çekmek ve Bu Listelenen Verilerinin Sütununu Görmek.) adlı makalemizde combobox da bulunan verilerinin sutununu öğreniyorduk. İşte burada öğrendiğimiz tabloda ki id’yi tespit ediyoruz.
Sonra tespit edilen bu id’yi
System.out.println(secilenDepartmanDomain.getId());

İle test ediyoruz doğru buluyor mu bulmuyor mu diye. Ardından;
Çalıştığından emin olduktan sonra
Map model = new HashMap(); Nesnesini oluşturuyoruz.

Sonra oluşturduğumuz bu nesnenin içerisine departmanBox’ta id’sini tespit ettiğimiz nesneimizi import ediyoruz.
model.put("id",secilenDepartmanDomain.getId());
Ardından;
JasperPrint print =           JasperFillManager.fillReport("raporlar/departmanParams/departmanRaporu.jasper",model, baglanti);

Burada JasperPrint kütüphanesinde yer alan JasperFillMager.fillReport() metonun içersine rapor konumuzu ve id’yi tespit ettiğimiz Map nesnesinden türetilmiş model nesnemizi ve connection nesnesinden türettiğimiz baglanti nesnesini atıyoruz.
Ardından;

JasperViewer.viewReport(print, false);
Methodunun içerisine JasperPrint nesnesini atıyoruz. Sonra durumunu false Yapıyoruz false’un Amacı rapor kapandığında program da kapanmasın.

Ardından Connection’ımızı kapatıyoruz.
baglanti.close();

Kısaca parametrik rapor böyle alınıyor çıktısı aşağıda ki resimdedir.
Resim2

Not Bu Makale Emrah DEDEOĞLU Tarafından yazılmıştır, içerisindeki örnekler denenmiştir ve olumlu sonuçlar alınmıştır.



Yorumlar

  1. gözünün yağını yiyim kapat şu siteyi rezillik resmen tasarımı düzelt veya; insan utanıyor Türkiye yazmış birde dalga geçer gibi site isminin hakkını veren bi tasarım yap :D

    YanıtlaSil
    Yanıtlar
    1. Sen daha iyisini yap bizde girip senden öğrenelim. Bide korkmadan şu gerçek adınıda bir görelim kimmiş bu ergen yorumu yapan

      Sil
  2. Emrah bey cevabınız güzel.. daha iyisini yapsın genç. durmak yok hizmete devam.. şuana kadar bulduğum ireport anlatan en iyi türkçe kaynak sizsiniz. Teşekkürler

    YanıtlaSil
    Yanıtlar
    1. Rica ederim sercan bey. Arada çıkıyor bu türden kişiler.
      Geneldede hazırcı zihniyet bu yorumları yapıyor.
      Oysa bir bilseki biz kendisine balık yemeyi değil balık tutmayı öğretiyoruz.

      Sil

Yorum Gönder

Bu blogdaki popüler yayınlar

Levhalar ve Levha Tektoniği

Başlangıçta tüm kıtaların Pangea adında tek bir kıta olduğu, sonradan parçalanıp dağılarak zamanla günümüzdeki yerlerine ulaştığı görüşüne dayanan kıtaların kayması kuramını aslında 1912'de bir meteorolog olan Alman bilim adamı Alfred Wegener ortaya attı.

Gezegenlerin Türkçe Adları

Vâr oluştan bu yana, tüm kişioğlunuñ (insanoğlunuñ) ilgisiñi çekmiştir gökyüzü. Eski kişiler de gökyüzünde erişilmez olan dahası kimi oğur (zaman) tapındıkları bu nesnelere adlar takmışlardır. Öyle ki, “güneş, ay, yıldız” gibi bir takım gök nesneleriniñ adları töz (temel) sözcükler olarak taplanır (kabūl edilir).

REYHANLI AŞİRETİ BOYBEYİ MURSELOĞLU HAYDAR BEY'İN AFFI VE MARAŞ'A İSKANI Ö

Teşkilatçı bir yapıya sahip olan Maraş Valisi Kalender Paşa, bölgesindeki Türkmen Aşiretlerini kendi aralarında örgütleyerek hem aralarındaki anlaşmazlıkları asgariye indiriyor hem de bölgede kendi gücünü ortaya koyuyordu.