20 Kasım 2016 Pazar

Vaadin Müşteri Uygulaması - 3

   Selamün Aleyküm,
   Vaadin ile yapmış olduğumuz örnek uygulamanın 3.üncü ve son yazısıdır. Birinci ve ikinci yazılarımıza ulaşabilirsiniz. Daha önce form kayıt ve tablo konularını işlemiştik. Bu yazıdaki konumuz raporlama olacak. Raporlama aracı olarak jasper ve ireport kullanacağız. Bununla ilgili ayıntılı anlatım yapmayacağım ama güzel anlatımı olan iki farklı site önereceğim. Bu sitelerde biri video diğeri resimli anlatımdır, ama bazı sorunlarla karşılaşabilirsiniz. Mesela java 8 kullanıyorsunuz projenin içine java 7 gömmeniz gerekebilir. Bununla ilgili youtube'taki videoda yorum olarak bir kaç problem yazmıştım. Çözümlerini de yazmıştım. Onlara göz atabilirsiniz.

    Şimdi kendi projemize gelelim. Orada nasıl kullanacağız. Öncelikle bir açılır liste tanımlayıp onun içine kadın müşteriler ve İstanbul'da ikamet eden müşteriler diye iki tanımla yaptık. Resim-1'de görebilirsiniz.
Resim-1

    Button generateReport = new Button("Generate");
     //Düğmemizi oluşturuyoruz
     combo.addItem("Male Costumer");//açılır listeye değer veriyoruz.
     combo.addItem("Customer in Istanbul");
     combo.setNullSelectionAllowed(false);//boş seçilemez diyoruz.

int i = 0; Embedded pdf = null;

@Override
public void buttonClick(ClickEvent event) {

if (i > 0) {
myTabRoot3.removeComponent(pdf);
                        //daha önce pdf açılmışsa açılan bileşen kaldırılsın
}
try {

JasperPrint jp = null;
String jasperName = "";
if (combo.getValue().toString().equals("Male Costumer")) {
                //seçtiğimiz değer bayan müşteriler ise bu kod kısmı çalışacak
jp = JasperFillManager .fillReport("yol.jasper", null, con);
                //oluşturduğumuz rapor taslağının yolunu gösteriyoruz
} else {
                //eğer diğer seçeneği yani İsanbulluları seçersek burası çalışacak
jasperName = "selectIstanbul";
jp = JasperFillManager.fillReport("yol.jasper", null, con);
}
// belirtilen yola pdf olarak çıktı alabiliyoruz
JasperExportManager.exportReportToPdfFile(jp, "yol"+ ".pdf");

// burada da aldığımız pdfi ekrana gömebiliyoruz. Bkz:Resim-2
File pdfFile = new File("yol"+ ".pdf");

pdf = new Embedded("Title",
                                  new FileResource(pdfFile,getApplication()));
                       //burada pdf'i tarayıcıya gömme işlemleri mevcut
pdf.setMimeType("application/pdf");
pdf.setType(Embedded.TYPE_BROWSER);
pdf.setHeight("1000px");//ekran boyutunu ayarlama
pdf.setWidth("1000px");

myTabRoot3.addComponent(pdf);
                        //her üç yazımızda dediğimiz gibi bileşeni gösteriyoruz.
i++;//bir pdf açtık. Tekrar üstüne açmayalım diye bir kurgu oluşturduk

} catch (JRException e) {
e.printStackTrace();
}

}
});

   Kodumuz içinde gerekli açıklamaları yaptık. Resim-2'de nasıl bir çıktı alacağımızı da gösterdik. Şimdi oluşturduğumuz tüm bileşenleri tanıtıp yazımızı bitiriyoruz.
Resim-2
        myTabRoot3.addComponent(combo);
myTabRoot3.addComponent(generateReport);
        //seçilir liste ve düğmeyi sekme 3'e ekledik.
tabsheet.addTab(myTabRoot3);
        //sekme 3'ü ana taba ekledik.
tabsheet.getTab(myTabRoot3).setCaption("Third Tab");
        //ismini değiştirdik.
mainLayout.addComponent(tabsheet);
        //ve en büyük bileşen tabımızı gösterdik
       
    Ve nihai olarak da projemiz için hazırlamış olduğumuz 3 yazılık kısa serimizin sonuna gelmiş olduk. İyi çalışmalar dilerim. 










Hiç yorum yok:

Yorum Gönder