Bu makalede bir windows uygulamasında Sql Server veritabanındaki veriler ile raporlama işlemi yapılmıştır. Örnek tablo, class ve stored procedure yapı

Bu örnekte Report nesnesini kullanarak Microsoft Report viewer ile rapor işlemleri yapacağız. Ben bu işlemi stored procedure ile yaptığım için, buna göre anlatacağım.Bir ürün tablosu ve bu tabloya istinaden oluşturduğum ürün classı üzerinden işlemlerimi yapacağım.Bu işlemleri yaparken kullanmış olduğum ürün tablosunu, class yapımı ve  ürünlerimi listelemek için oluşturduğum stored procedure’ü aşağıya ekledim.

 

Ürün tablosu









Ürün Classı:

 

public class Urun

{

        public int UrunId { get; set; }

        public string UrunAdi { get; set; }

        public string Marka { get; set; }

        public string Model { get; set; }

 

        public Urun()

        {}

}


Oluşturduğum Stored Procedure:

 

Create Procedure sp_GetUrun

      @fldUrunAdi nvarchar(100)

As

Begin

      Select      U.fldUrunId,

                  U.fldUrunAdi,

                  U.fldMarkasi,

                  U.fldModeli

      From  tblUrun U

      Where fldUrunAdi=@fldUrunAdi

End


Önce formumuza Toolboxtan Reporting  tabı altından Microsoft Report Viewer nesnesi ekliyoruz.Daha sonra görüntüleyeceğimiz raporu oluşturacağız. Bu işlem içinde standart araç çubuğu üzerindeki  “Add New Item ” butonunu tıklayıp, açılan pencereden Reporting  seçeneği altından Report nesnesini seçelim. Raporumuza rprUrunler ismini verirsek anlaşılması açısından daha kolay olacaktır. Projemize raporumuzu da ekledikten sonra şimdi Report Viewer nesnemize bu raporu bağlayalım. Bu işlem için önce report viewer nesnesini tıklayalım. Daha sonra hemen sağ üst köşesinde beliren ok işaretini tıklayarak “Choose Report” comboboxından oluşturduğumuz rprUrunler raporunu seçelim.



















Gelelim tekrar rapor tasarımımıza. Raporumuza geçelim ve solda açılan DataSources penceresinden new Add New DataSource butonuna tıklayalım. Açılan wizardda Database seçeneğini seçelim.Next butonuna tıkladıktan sonra New Connection butonuna basıp gerekli ayarlamamızı yapalım. Ayarlarımızı yaptıktan sonra Next butonuna basalım. Bu bağlantı ayarlarını kaydedip etmeyeceğimizi soracak. Next ile bu adımı da geçelim. Seçtiğimiz database’e ait nesneleri getirdi. Buradaki nesneler içerisinden “Stored Procedures” seçeneği altından ilk adımda oluşturduğumuz  sp_GetUrun stored procedurunu  seçelim ve Finish butonuna tıklayalım. Artık datasetimiz de hazır. Şimdi menüden Report menüsü altındaki “Data Sources” seçeneğini tıklayalım. Ve açılan pencereden kendi data source nesnemizi raporumuza ekleyelim.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Bu işlemide tamamladıktan sonra rprUrunler raporumuzun tasarımını yapalım. Bunun için önce raporumuza bir başlık verelim.Rapora bir textBox ekleyelim ve text propertysine Ürünler değerini verelim. Daha sonra tablomuza bir adet Table nesnesi ekleyelim.

Table nesnesinin üç bölümü bulunmaktadır. Header, Detail ve Footer. Bizim işimizi görecek asıl kısım Detail bölümü. Bu bölümde ürünler listelenecek.Header kısmında başlık vs gibi işlemlerimizi görüntüleriz. Detail kısmında ise tekrar eden verileri göstereceğiz. Footer kısmında ise toplam, count gibi değerleri göstermek için kullanabilirsiniz.

Şimdi önce header kısmına başlıklarımızı yazıyoruz.








Ardından data sources penceresine geçip  TestDbDataSetinden  sp_GetUrun stored procedurunun bize getirdiği fieldları uygun olan yerlere yerleştiriyoruz.Ve raporumuz aşağıdaki şekle geliyor.












Artık kod tarafına geçip işlemlerimizi yapabiliriz.Form1 nesnemizin code bölümünde yazan tüm kodları aşağıya ekledim.

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

using Microsoft.Reporting.WinForms;

 

namespace Test

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void Form1_Load(object sender, EventArgs e)

        {

            SqlParameter[] parametrelerim = new SqlParameter[1];

            parametrelerim[0] = new SqlParameter("@UrunAdi","Telefon");

            DataSet dtsUrunler = ExecuteProcedure("sp_GetUrun", parametrelerim);

            ReportDataSource rdsUrunler = new ReportDataSource("TestDbDataSet_sp_GetUrun", dtsUrunler.Tables[0]);

 

            reportViewer1.LocalReport.DataSources.Clear();

            reportViewer1.LocalReport.DataSources.Add(rdsUrunler);

            reportViewer1.LocalReport.Refresh();

            reportViewer1.RefreshReport();

            this.reportViewer1.SetDisplayMode(DisplayMode.PrintLayout);

            this.reportViewer1.RefreshReport();

        }

 

        public DataSet ExecuteProcedure(string strProcName, SqlParameter[] _Parameters)

        {

            SqlConnection baglantim = new SqlConnection("Data Source= serveradresiniz; DataBase=TestDb; user=kullnıcıadı; password=şifre");

            DataSet Returned = new DataSet();

            try

            {

                if (baglantim.State == ConnectionState.Closed)

                    baglantim.Open();

                SqlCommand cmdDatabase = new SqlCommand();

                cmdDatabase.CommandType = CommandType.StoredProcedure;

                cmdDatabase.CommandText = strProcName;

                cmdDatabase.Parameters.Clear();

                cmdDatabase.Parameters.AddRange(_Parameters);

                cmdDatabase.Connection = baglantim;

                SqlDataAdapter adpDatabase = new SqlDataAdapter(cmdDatabase);

                adpDatabase.Fill(Returned);

            }

            catch (Exception ex)

            {

 

            }

            finally

            {

                if (baglantim.State == ConnectionState.Open)

                    baglantim.Close();

            }

            return Returned;

        }

    }

}


Bu da raporumuzun görüntüsü:















Yardımcı olması dileğiyle...

 

İlgili Makaleler

Bu yazıya 0 yorum yapılmış.

Yorum Gönder