14 Ocak 2008 Pazartesi

Raporlama Servisinin (Reporting Services) Sunucu Bilgilerini Web Servisi ile Sorgulama

Raporlama Servisinin (Reporting Services) Sunucu Bilgilerini Web Servisi ile Sorgulama

Reporting Services,(Raporlama servisi) sunucu bilgilerine XML Web Servisi üzerinden erişmemize imkan sağlar. Sunucu bilgilerine web servisi üzerinden erişmek için (SQL Server’ default instance olarak kurmuşsanız) http://localhost/ReportServer/ReportService.asmx?wsdl adresli web servisini kullanmamız gerekmektedir.

Şimdi Raporlama Servisi bilgilerine Web Servisi üzerinden erişmek için, Visual Studio 2005 içerisinden “Windows Application ” şablonunu seçin.




Oluşturduğumuz proje içerisine web servisini eklemek için “Project” menüsü içerisinden “Add Web Reference” komutunu verin.



“Add Web Reference” pencerenin “URL” isimli metin kutusuna http://localhost/ReportServer/ReportService.asmx değerini girin ve “GO” butonuna basın.




“Add Web Reference” penceresi üzerindeki “Web reference name” metin kutusuna “rsInfo” değerini girin ve “Add Reference” butonunu tıklayın. Böylece Web servisini projemize eklemiş olduk. Object Browser penceresi içerisinde eklemiş olduğumuz web servisi aşağıdaki gibi gözükecektir.




Şimdi proje içerisindeki formumuza, “btnGetItems” isminde bir Button, txtName isminde bir TextBox ve “lstResults” isminde bir ListBox ekleyin. Görüntü aşağıdaki gibi olacaktır





Imports RptSrvInfo.rsInfo
Public Class Form1
Private Sub btnGetItems_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetItems.Click
lstResults.Items.Clear()
'Raporlama servisinin Sunucu bilgilerine
'erişmek için web servisi örneği tanımladık
Dim myReportService As New ReportingService
'Reporting Service sunucusu üzerinde arama gerçekleştireğiz.
Dim condition As New SearchCondition
condition.Name = "Name"
condition.Value = txtName.Text
Dim mySearchConditions(0) As SearchCondition
mySearchConditions(0) = condition
myReportService.Credentials = _
System.Net.CredentialCache.DefaultCredentials
Dim myCatalogItems As CatalogItem()
myCatalogItems = myReportService.FindItems("/", _
Nothing, mySearchConditions)
'Raporlama sunucusu üzerinde bulunan elemanlar
'listbox içerisine yazdık.
For Each cItem As CatalogItem In _
myCatalogItems
lstResults.Items.Add(cItem.Path)
Next
End Sub
End Class



Projeyi çalıştırın. “btnGetItems” isimli butonu tıkladığınızda, Reporting Services içerisindeki tüm elemanlar aşağıdaki gibi listelenecektir.





Sonuç olarak Reporting Services’in web servisini kullanarak, sunucu üzerindeki bilgileri projelerimizde gösterebiliriz.
Başka bir makalede görüşmek üzere...
Tamer ŞAHİNER
Tamer.sahiner@bilgeadam.com

Hiç yorum yok: