VS.NET 2003 Kullanarak İlk MS SQL Server 2000 Reporting Services Raporunuzu Oluştumak
MS SQL Server 2000 Reporting Services hızlı bir şekilde raporlama ihtiyaçlarınızı çözmek için güçlü bir araç. Kullanım kolaylığı yanında öğrenme kolaylığı da hızlı bir şekilde üretken bir çalışma temposu yakalamanıza olanak sağlıyor. Bu makalede basit bir rapor hazırlayarak Reporting Services ile rapor geliştirme konusuna bir giriş yapmaya çalıştım.
Reporting Services uygulamasının kurulumu ile ilgili bir makaleyi Microsoft SQL Server 2000 Reporting Services Kurulumu isimli yazıda bulabilirsiniz. Bu makalede development ortamınız için MS SQL 2000 Reporting Services kurulumunu gerçekleştirdiğinizi varsayıyorum.
Eğer daha yeni, güncel bir Reporting Services eğitim dökümanı arıyorsanız Create your first SQL Server Reporting Services Report isimli yazımı okuyabilirsiniz.
Reporting Services raporları .rdl uzantılı dosyalardır. RDL dosya uzantısının açılımı Report Definiton Language 'dir ve .rdl dosyaları XML dökümanlarıdır. RDL raporlarınız XML formatında dosyalar olduğu için herhangi bir editör yardımı ile geliştirebileceğiniz yazılsa da verimli ve hatasız bir şekilde rapor tasarlamak ve geliştirmek için Visual Studio.NET 2003 dışında herhangi bir editörün size yardımı olmayacaktır.
VS.NET 2003 geliştirme ortamımızı açarak (IDE) ilk raporumuzu geliştirmeye başlayalım. İlk adımımız yeni bir proje açmak olacak. New Project seçeneği ile ekrana gelecek ekranda Business Intelligence (BI) proje şablonunu (template) seçelim.
"Report Project Wizard" proje sihirbazı olarak adlandırılsa da sihirbaz (wizard) bana biraz karışık geldiği için doğrudan boş bir "Report Project" şablonu ile başlamayı her zaman için tercih ediyorum. Reporting Services rapor projenize bir isim verdikten ve fiziksel olarak nerede oluşturulmasını istediğinizi Location kısmına girdikten sonra OK butonuna bastığınızda rapor projenizin oluşturulması tamamlanmış olacaktır.
Yeni oluşturulmuş bir projenin özelliklerini aşağıdaki resimde görebilirsiniz. Bir Reporting Services projesi "Shared Data Sources" ve "Reports" adında iki ana bölümden oluşmaktadır. Shared data sources projede aynı veri kaynağından beslenecek raporlar için ortak bir veritabanı bağlantısı (connection string) içerir. Shared Data Sources rapor oluşturma aşamasında daha önceden oluşturulmuş bir veri kaynağı kullanılacağı için hem raporun daha çabuk geliştirilmesini sağlar. Hem de rapor projenizi başka bir server'a ki bu production ortamı olsun veya başka bir server olsun projenizi deploy ettiğinizde yeni veri kaynağını tek bir değişiklikle tüm raporlarınız için güncellenmesini sağlar. Shared Data Sources projenizin yönetimi (management) ve bakımı (maintenance) aşamalarında sağlayacağı faydalardan dolayı mutlaka kullanılması gereken proje bileşenlerindendir.
Shared Data Sources ile ilgili daha detaylı bilgiyi Shared Data Source Oluşturmak isimli makalede bulabilirsiniz.
Reporting Services projemizi oluşturduktan sonra ve proje bileşenlerinden Shared Data Sources hakkında genel bilgiler aldıktan sonra ilk raporumuzu oluşturarak konumuza devam edelim. Solution Explorer ekranında Reports dizini üzerinde sağ tıklayarak açılacak menüde "Add" seçeneğini ve ardından "Add New Item" seçeneğini seçelim.
"Add New Item" ekranında, Templates alt ekranında "Report" seçimini yapalım ve raporumuza bir isim verelim. Örnek raporumuzu Product.rdl olarak isimlendirelim. Örneğimiz için her SQL Server 2000 kurulumunda olan Northwind veritabanı yaygınlığından dolayı kullanıyorum. Raporda Product tablosundaki ürünlerin bir listesini oluşturacağız.
Solution Explorer penceresinde yeni oluşturduğumuz Products.rdl isimli raporumuzu aşağıdaki resimde görebilirsiniz.
Her Reporting Services raporu tasarım aşamasında iki ana bölümden oluşur. Bunlardan birincisi "Data" tab'ı altında görebileceğimiz raporumuzda görüntüleyeceğimiz verilerin kaynağını belirtmekte kullandığımız bölümdür. Veri kaynağı hem Data Source 'u seçmek veya oluşturmak hem de bu data source içinden istenilen veri setini seçmekte kullanacağımız statement'ları belirtmekte kullanılır. Diğer bölüm "Layout" 'tan oluşmaktadır. Bu Data bölümünde seçilerek getirilmiş verinin görüntülenmesi ile ilgili format ve sunum biçimlerinin belirlendiği ekrandır.
Ana rapor ekranında yukarıda göreceğiniz gibi yer alan Data ve Layout Tab'ları yanında bir üçüncü Tab "Preview" tab'ı yer alır. Preview bölümünü raporunuzu deploy etmeden önce çalıştırarak çıktısını görüp kontrol etmek için kullanabilirsiniz.
Raporumuz için ilk aşamada rapor verisini belirleyerek devam edelim. Bunun için Data tab'ında Dataset combo kutusu içinden "<New Dataset...>" seçeneğini seçelim.Yani raporumuz için yeni bir veri seti ya da veri kümesi oluşturalım.
"New Dataset" seçimi ile "Data Link Properties" ekranı açılacaktır. "Connection" tab'ı aktif olarak açılan bölümdür. Çünkü Provider tab'ında "Microsoft OLE DB Provider for SQL Server" varsayılan değer olarak seçilmiştir. Provider tab'ına geri dönerek ihtiyacınız olan provider'ı seçebilirsiniz. Ben MS SQL Server 2000 ve Northwind veritabanını kullanacağım için default provider olan "Microsoft OLE DB Provider for SQL Server" varsayılan değeri değiştirmeyeceğim.
Kendi makinamda kurulu olan SQL Server default instance 'ını kullanacağım için 1 numaralı bölüme "." değerini girdim. Buraya makinanızın adını da girebilirsiniz. Veya default instance dışında bir kurulumu kullanacaksanız [MakinaAdi\KurulumAdi] şeklinde giriş yapabilirsiniz. Kendi makinanız için Windows NT Integrated security uygun olacaktır. Dilerseniz SQL Server makinanız içinde yetkili olan bir kullanıcı adı ve parolasını 2 numaralı bölümde tanımlayabilirsiniz. 3 numaralı bölümde seçilen kurulumda (instance) varolan veritabanları listelenir. Biz Northwind veritabanını seçerek devam edelim. "Test Connection" butonunu kullanarak tanımladığımız Connection (veritabanı bağlantısının) başarılı olup olmadığını kontrol edebiliriz.. OK butonuna tıklayarak Data Source'umuzu tanımlamış olduk.
Yukarıdaki adımları izleyerek Northwind adında bir Dataset oluşturmuş olduk. Dataset'imizin adını Products olarak güncellemek istiyorum. Çünkü raporumuz ürün bilgilerini içeren bir rapor olacaktır. Dataset ile ilgili daha fazla güncellemeleri aşağıdaki ekranda görebileceğiniz "..." buton yardımı ile açılacak ekranda gerçekleştirebilirsiniz.
"..." butonuna bastığınızda aşağıdaki dataset ile ilgili özellikleri görüntüleyen Dataset ekranı açılacaktır. Bu ekranda Name bölümünde Products olarak güncellememizi yapalım.
"Command type" dropdown kutusunda aşağıdaki değerlerin olduğunu göreceksiniz. Text, StoredProcedure ve TableDirect.
İlk Reporting Services raporumuz için "SELECT * FROM Products" şeklinde bir sorgu tanımlayacak olduğumuz için "Command type" listesinden "Text" seçimi ile devam edebiliriz. Ve sorgu cümleciğimizi "Query string" kutucuğuna girebiliriz. "SELECT * FROM Products" sql cümleciği ile tüm Products tablosundaki kayıtları listelemiş olacağız.
Diğer bir metot da command type olarak StoredProcedure seçmek ve kullanacağımız stored procedure adını ilgili bölüme girmek şeklinde olacaktır. Aşağıdaki script'i kullanarak ListAllProducts adında bir stored procedure oluşturalım ve bu stored procedure adını (ListAllProducts) "Query string" metin kutucuğuna yazalım.
OK butonuna basarak Dataset özellikler ekranını kapatalım. Data tab'ında yer alan Run butonuna ( ) basarak raporumuzun veri kümesini oluşturacak kayıtları ekranda görüntüleyebiliriz. Böylece data source 'umuzu ve dataset'imizi oluşturan query string 'imizi test etmiş oluruz.
Bu noktada söylenebilecek bir önemli nokta da raporumuz için birden fazla Dataset kullanabileceğimizdir. Data tab'ındaki Dataset kombosunda yeralan <New Dataset...> seçimi ile raporumuz için yeni veri kaynakları oluşturabiliriz.
İlk Reporting Services raporumuz için verilerimizi sağladıktan sonra artık Layout bölümünde rapor formatımızı hazırlayabiliriz.
Layout tab'ına tıklayarak tasarım (design) için rapor layout görüntüsüne geçelim. VS.NET geliştirme ortamında sol bölümde yeralan ToolBox 'ı aktif hale getirerek "Table" kontrolünü "drag and drop" yani sürükle bırak yöntemi ile layout ekranına bırakalım. Ardından Fields listesinden raporda görüntülemek istediğimiz kolonların seçimini yapalım. Bu kolonları tablonun Detail (detay) ksımına bırakalım. Böylece ilgili veritabanı alanı için tabloda bir header (başlık) oluşturulduğunu da görebilirsiniz.
Yukardaki ekranda solda Toolbox ikonunu en üstte görebilirsiniz. Aynı bölümde Fields (alanlar) seçimini yapabileceğimiz ekranda en altta görüntülenmiştir. Raporunuz için toolbox içinde yeralan diğer kontroller arasından ihtiyacınız olanları seçerek layout'unuzu geliştirebilirsiniz. Örneğin raporunun başlığı için bir Textbox kontrolü eklemek gibi.
Artık ilk reporting services raporumuzu tamamlamış olduk. Çalışmamızın sonucunu Preview tabında görebiliriz.
İlk Reporting Services raporumuzda basit bir dataset oluşturduk. Bu dataset içindeki verileri görüntülemek için toolbox içindeki kontrollerden yalnızca birisi olan Table kontrolünü seçtik. Ve raporumuzu Preview ekranında görüntüledik
Bu raporda ana hedefimiz Reporting Services rapor geliştirme ortamına alışmak ve temel metodu anlamak olduğu için çok detaylı ve özellikli bir rapor hazırlamadık. İleride Reporting Services içinde Custom Code kullanımı, raporlarda çok uluslu ortamlarda kullanılacak yöntemler, raporların deployment'ları gibi konulara da değineceğim.