18 Şubat 2014 Salı

DevExpress ile XtraReport Oluşturma (Master-Detail Report)

Hiç beklenmedik anda karşınıza XtraReport, Crystal Report vb. çat diye bir talep çıkabiliyor. Çok sık tekrarlanmadığından pratikliğiniz zaman aşımına uğrayabiliyor.

Bunu unutmamak adına, hem kendim hem de uğraşanlar için veri tabanından dinamik bir şekilde dataları çekip, Devex componentleri ile XtraReport oluşturup-almayı anlatacağım.

1. Visual Studio'da yeni bir proje oluşturuyoruz.

2. Solution Explorer'da Reports'a sağ tıklayıp Add-> New Item seçiyoruz.



3. DataSet'i seçip projemize ekliyoruz. DataSet' i tercihe göre isimlendiriyoruz. Ben "Northwind" dedim.



4. Daha sonra Server Explorer'dan  Data Connections' a sağ tıklayıp Add Connection seçiyoruz.



5. Açılan pencerede; Server name kısmına: (local) yazıyoruz ve aşağısında "Select or enter a database name" kısmında MSSQL' de oluşturduğumuz database ler listeleniyor, data alacağımız database i seçiyoruz ve OK diyoruz. Ben daha önceden oluşturmuş olduğum Northwind database i seçtim.



6. Seçtiğimiz database; tables, views.. vs. tüm içeriğiyle Server Explorer'a geldi. Şimdi raporlama için ihtiyaç duyduğumuz dataları barındıran tabloları seçiyoruz ve alana taşıyoruz. Birden fazla seçim için Ctrl tuşuna basılı tutarak tıklayın.



7. Ardından tabloda Fill,GetData()' yı sağ tıklayıp Preview Data' yı seçin.


8. Preview Data penceresinden table içindeki dataları görüntüleyebiliriz.



9. Daha sonra, projemize yeni bir item daha ekliyoruz.



10. Menüden DXperience v13.1 Report Class' ı seçiyoruz ve ardından tercihe göre isimlendirip Add diyoruz. Ben ürün ve müşteri ilişkili bir rapor hazırladığımdan ProductReport olarak isimlendirdim.



11. Rapor sayfası geldikten sonra sol üst taraftaki oka tıklıyoruz ve oradan DataSource seçiyoruz, listede çıkan database i tıklıyoruz. DataMember kısmında database içinden seçtiğimiz tabloları görebiliriz ve seçim yapabiliriz. Bende Categories tablosu seçili ve DataAdapter kısmında categoriesTableAdapter seçili durumda.



12. Rapor sayfamızda Detail kısmına tıklıyoruz. Field List' te bulunan tablolardan gerekli columnları detail içine taşıyoruz.




13. Preview' a tıkladığımızda rapora veri tabanından gerekli bilgilerin çekildiğini görebiliriz.



14. Detail'i seçip sağ tıklıyoruz ve Insert Detail Report -> CategoryProducts seçiyoruz. Eğer sadece bir tablodan data çekeceksek Unbound seçebiliriz ama iki tablo ilişkili olduğundan böyle yapıyoruz.




15. Detail altına  açılan kısma da diğer gerekli columnları ekliyoruz. Columnların raporda düzgün görünmesi için yerlerini ayarlıyoruz. En alttaki yatay çizgiyi de columnların hemen altına kadar taşımayı her seferinde yapıyoruz. Böylece birer satır boşluk olacak.




16. Tekrar Preview yaptığımızda rapor bu hali almış oluyor. Gerekirse Devex componentlerinden label vb. seçerek ilgili column için bilgi yazabiliriz. Sonrasında sol üstte raporu kaydedebiliriz.


2 yorum:

  1. çok güzel anlatmışsınız fakat benim bir sorum olacak butona tıklandığında raporu nasıl göstereceğiz ?

    YanıtlaSil
  2. merhaba iyi günler bende sizin gibi raporlama yapıyorum ama tored procedure ile yapıyorum yardımcı olursanız sevinirim
    gmail:ismaildokuz5@gmail.com

    YanıtlaSil