Vb.Net Crystal Reports - Parameter Fields

Bildiğimiz üzere VB.NET'e veritabanını bağlıyoruz, ama belki de veri tabanında yazdırmamız gereken yer var ama, raporlama yaparken bir veri tabanı tablosundan bağlanıp raporluyorduk şimdi bunu dışarıdan bir değer atayaraktan yapalım.

Merhaba Arkadaşlar,

Bildiğimiz üzere VB.NET'e veritabanını bağlıyoruz, ama belki de veri tabanında yazdırmamız gereken yer var ama, raporlama yaparken bir veri tabanı tablosundan bağlanıp raporluyorduk şimdi bunu dışarıdan bir değer atayaraktan yapalım. (Bu konu Forumda sorulmuştu umarım gerekli kişilerin işini görür.)

İlk adım "VERITABANI" adında bir Access veritabanı dosyası oluşturun.

İkinci adım "VERI" adında bir tablo oluşturun gerekli ayarlamalar aşağıda bulunmaktadır.



Üçüncü adım şimdi raporlama yapabilmek için bir sorgu oluşturacağız aşağıda gerekli resim bulunmakta (Sağ Tıklayıp SQL Göster demeniz yeterli)



Şimdi SQL de de gördüğünüz gibi "YAZAR_ADI" Alanına parametre belirledik bunu VB.Net içersinde gerekli yerde kullanacağız.
Artık VB.Net içersindeki yapacağımız ayarlara geldi öncelikle aşağıdaki gibi bir form tasarlayın.(1 Adet TextBox, 1 Adet Label, 1 Adet Button)



İkinci bir form alın projenize ve içersine "Crystal Reports Viewer" Ekleyin ardından bu nesnenin "Dock" Özelliğini "Fill" yapın.(Genelde bu halde gelir.)



Şimdi artık raporlama yapabilmemiz için "Crystal Reports" nesnesi ekleyelim
(Project/Add New Item)



"Add" Dedikten sonra çıkan pencerede "Standart" seçeneğini seçin ve diğer adıma geçin.





"Create New Connection" Klasörünün altında yer alan "Access/Excel(DAO)" Seçeneğini seçin ve aşağıdaki pencere açılacaktır.



"Database Name" Kısmına Veritabanınızın yerini Belirleyin ve "Son" veya "Finish" diyerek diğer adıma geçiniz.



Çıkan pencerede veritabanınızın içersindeki tablolar ve sorguları göreceksiniz oluşturmuş olduğumuz "YAZAR_SORGU"sunu "Selected Tables" Penceresine aktarın ileri diyerek bir sonraki adıma geçin.



Açılan bu pencerede raporunuzda listelemek istediğiniz verilerinizi "Available Fields" bölümünden "Fields to Display" Bölümüne aktarın.ileri diyerek diğer adıma geçelim



Gruplandıracağınız verileriniz varsa "Group By" bölümüne aktarabilirsiniz.



Filtrelenecek alanlarınız varsa "Filter Fields" bölümüne aktarabilirsiniz.



Raporunuz için uygun bir sitil seçtikten sonra "Son" diyerek Sihirbazla olan işimizi bitirelim



Yukarıdaki gibi projenize bir adet "rpt" uzantılı dosya eklenicektir.Özellikle "Field Explorer" penceresinde yer alan "Parameter Fields" satırına Access uygulamasında yaptığımız Sorgudaki parametrenin geldiğine dikkat edin.

Şimdi uygulamamızın Parametrelerinin aktarımına gelelim bu işlemi kodlarla yapıcağız aynı işlem sihirbaz ilede yapılabilir ama bu biraz işin kolayına kaçmaktır o yüzden kodları yazmaya başlayalım ilk olarak parametreyi gireceğimiz formumuza gelelim (üzerinde Textbox ve Button olan). Şimdi burada parametre değerimizi bir değişkene aktararak işleme devam edeceğiz. aşağıda gerekli kodlar var siz kendi yaptığınız uygulamada gerekli yerlere yerleştirirsiniz.(Button_Cliclk Events'ına ve Form?un class seviyesindeki bölüme)


Public Class Form1

    Public Shared egitimismi As String



    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim yeni As New Form2

        egitimismi = TextBox1.Text

        yeni.Show()



    End Sub

End Class



Aşağıdaki kodu ise "CrystalReportsViewer" nesnesinin olduğu forma (İkici Formumuz),(Form_Load Events?ına ve Form general bölümüne ekliyeceksiniz.)


Imports System.Data

Imports System.Data.SqlClient

Imports CrystalDecisions.Shared



Public Class Form2



    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim parametre As CrystalDecisions.Shared.ParameterValues

        Dim deger As CrystalDecisions.Shared.ParameterDiscreteValue

        Dim rapor As CrystalReport1

        parametre = New CrystalDecisions.Shared.ParameterValues

        deger = New CrystalDecisions.Shared.ParameterDiscreteValue

        deger.Value = Form1.egitimismi

        parametre.Add(deger)

        rapor = New CrystalReport1

        rapor.DataDefinition.ParameterFields(0).ApplyCurrentValues(parametre)

        CrystalReportViewer1.ReportSource = rapor



    End Sub

End Class



Yukarıdaki kodları tek tek açıklamıyacağım, ders çok uzuyacak. Sadece Parameter_Fields olayının kodlarla yapılışı, yani sihirbazı kullanmadan parametre ile raporlama için.
  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Elinize Sağlık
Teşekkür ederim Crystal Reports Viewer nesnesinden yapılıcak zaten sayfa ayarlama ve dığer seçenekleride oradadır veyahut yazdırma ıcın acılan yazıcı penceresınden kendı yazıcı ayarlarını kullanabılırsın eğer bunlarda olmaz dersen Print Dialog nesnesi var VS.Net 2005 sonrasında bulunuyor o şekilde de kullanabılırsın.
Baba büyüksün. Bize böyle bir hizmet verdiği için bütün site ekibini kutluyorum . Hepinizden Allah razı olsun...
eline sağlık
egitimismi = TextBox1.Text bu kod nedir acaba hata veriyorda

Yukarı Git