Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Feryat Olcay
Feryat Olcay
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
15 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler:  ADO.NET/SQL Feryat Olcay
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Orta
Kategori : ADO.NET/SQL
Yayınlanma Tarihi : 3.5.2004
Okunma Sayısı : 106095
Yorum Sayısı : 5     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 16.4.2024
Turhal Temizer
Mac OS/X Removing CUDA 16.4.2024
Burak Selim Şenyurt
Kurumsal Yazılımcının Oyun Geliştirme ile İmtihanı 16.4.2024
Burak Selim Şenyurt
Matematik ve Oyun Programlama - Missile Command - Final 16.4.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
.NET Ortamında "Crystal Report" ile Raporlamaya Giriş
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon

Bu makalemizde Microsoft Visual Studio ile birlikte gelen Crystal Reportu anlatacağım. Diğer bütün olasılıklarda olduğu gibi bilinmediğinde çok zor gözükür.Ben öğrenirken epey bir zorluk çekmiştim.Umut ediyorum ki bu makalede az da olsa crystal report hakkında  bilgi sahibi olursunuz  ve kullanmaya karar verdiğinizde çok zorlanmazsınız.

Anlaşılması rahat olsun diye bolca resim kullandım. Öncelikle sık kullanılacak bir kaç özelliğinden kısaca bahsedelim. Bu özelliklerin geniş açıklamasını visula studionun yardım dosyalarından rahatlıkla bulabilirsiniz.

Report Header:Rapor başlığı.Rapora vereceğiniz başlık yada benzeri durumlarda bu alanı kullanmalısınız.

Page Header : Sayfa başlığı.Raporunuzda her sayfada oluşacak başlık.

Details : Detaylar. Genellikle tekrarlanabilecek kayıtlarda kullanılır. 

Report Footer : Rapor Sonu.Raporunuzun sonuna eklemek istediğiniz alanları buraya koymalısınız.Örneğin güzel bir dizayn yada sistem tarihi olabilir. 

Page Footer : Sayfa Sonu.Raporunuzda sayfa sonuna ekleyeceğiniz alanları buraya koymalısınız.Örneğin sayfa sayısı vb. 

Şimdi veritabanında tablolarımızı oluşturalım.Tablolarımız söyle olsun: 

 

Resim1: Il tablosunun alanları.

  

Resim2: Ilce tablosunun alanları.

Projemizin amacı veritabanında IL lere göre İLÇE listesi alabilme; diğer bir anlatımla formdan aldığı bir id ile ilgili ili ve ona bağlı ilçeleri listeleyecek.Tablolar arasında bire çoklu(Master-Details)bir durum var.Bu  karşımıza sık sık çıkabilecek bir durum. Form1 ’ e şöyle bir şekil verelim.Form1 Rapor göster tuşuna basıldığında il id yazacağımız fonksiyona gönderip raporumuzu oluşturmamızı sağlayacak.

      

Resim3: Form1 ’in dizaynı. Projemize ikinci form ekliyoruz.Bu formumuzu da raporu göstermek için gerekli olan crystalReportViewer eklemek için kullancağız. Formumuzu ekledikten sonra sol taraftaki araç çubuğunda(toolbax) crystalReportViewer nesnesini seçip formumuza ekliyoruz.

Resim4: FormRapor CrystalReportViewer nesnesini ekleme.

Veriyi depolamak ve raporda kullanmak için Add >> Add New Item ’dan Data Set nesnesini ekliyoruz.

Resim5: DataSet nesnesi ekleme.

Raporlamak istediğimiz tabloyu oluşturmak için dataset nesnesi üzerinde sağ tıklayıp açılan menude New Elemet dememiz yeterli olacaktır.Ve daha sonra elemetimiz içerisinde görüntülemek istediğimiz alanları oluşturabilirsiniz.Yada direk sol tarafta bulunan Server Explorer dan kullanmak istediğimiz tabloyu  dataset nesnesi üzerine sürükleyip bırakabilir ve tabloda istediğimiz alan ekleyebilir yada silebilirsiniz.

Resim6: DataSet nesnesi üzerinde element yaratma.

Projemizde kullanmamız gereken nesneleri eklemeye devam ediyoruz.Son olarak ta tekrar Add >> Add New Item ’dan Crystal Repot’ u ekliyoruz.Ekledikten sonra karşımıza çıkacak ilk ekranda olan Cristal Decisions Registration Vizard ekranında  Register Leter seçilim; Crysal Report Gallery ekranında üç şık karşımıza çıkacaktır.  Şimdilik As a Blank Repory(boş rapor sayfası) seçelim. Ve raporumuza kendimiz şekil verelim.

Resim7: Crystal Report nesnesinin eklenmesi

Boş olarak seçmiş olduğumuz rapor sayfamızda sol tarafta buluna Field Explorer penceresinden Database Fields seceneğinde sağ tıklayıp Add\Remove Database seceneğini seçelim. Karşımıza çıkacak olan pencerede  Project Data > ADO.NET DataSets > Projenizin Adı > Ve eklemiş olduğunuz tablo yada tablolar gelecektir.Raporda kullanacağınız tabloyu burda ekleyebilir yada çıkartabilirsiniz.Dikkat  etmeniz gereken bir nokta "crystal reports" da raporunuzda kullanmak istediğiniz bir tabloyu veri ile doldurmazsanız yani raporunuz  boş gelecektir.

Resim8 : Database fields ’tan raporumuzda kullanacağımız tabloları seçmek.

Evet datasetimizdeki tablo yada tablolarımız hazır yani rapor sayfamız hazır. Artık yavaş yavaş raporumuza şekil vermeye başlayalım.Database Fields alanında eklemek istediğmiz alanlarımız geldi. Bunları kullanma şekline göre raporumuzun ilgili bölümlerini sürükleyip bırakalım. Eğer ard arda sıralanmasını istediğimiz alanlar varsa bunları Details alanına ,bir kere tekrarlanacakları da Page Header alanına eklememiz gerekir.Aşağıdaki örnekte olduğu gibi :

Resim 9: Rapor Dizaynı

FormRapor  formunda aşğıdaki  kodu yazıp raporumuzun tablolarını doldurmak için gerekli fonksiyonu çağıralım . Crystal repot ’ta Adapteri kullanırken  isterseniz araç çubuğunda (toolbax) data sekmesinde var olan dataset , OLDBDataAdapter vb nesneleri kullanarak ta yapabilirsiniz.

private System.Data.OleDb.OleDbConnection Baglan()                                                        {

   //Veri tabanı ile ilişkiyi sağlayacak connection metodumuz         

   System.Data.OleDb.OleDbConnection myConnect = new System.Data.OleDb.OleDbConnection();   

   myConnect.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial

   Catalog=FeryatDeneme;Data Source=LOJ2003S;Workstation ID=FERYATOLCAY";

   if(myConnect == null || myConnect.State == ConnectionState.Closed)

      myConnect.Open();

   return myConnect;

}

private static Form _Form;

//DataserRapor’dan benzerini olulşturuyoruz

private DatasetRapor myDataSet = new DatasetRapor();

public static void ShowForm(System.Decimal Il_Id)    {

 //FormRaporun show metodu

   if(_Form == null || _Form.IsDisposed)

      _Form = new FormRapor();

   _Form.Activate();

   _Form.Show();

   ((FormRapor)_Form).LoadReport(Il_Id);

}

private void LoadReport( System.Decimal Il_Id) {

   System.Data.DataTable myTable = new DataTable();

   string SQL = "";

   System.Data.OleDb.OleDbDataAdapter myAdapter = new System.Data.OleDb.OleDbDataAdapter();

   SQL = "SELECT ILCE.*, IL.* FROM EMLAK_IL IL , EMLAK_ILCE ILCE WHERE ILCE.EMLAK_IL = IL.IL_ID AND IL.IL_ID="+Il_Id;

   myAdapter.SelectCommand = new System.Data.OleDb.OleDbCommand(SQL,Baglan());

   myAdapter.Fill(myTable);

   for(int i = 0; i < myTable.Rows.Count ;i++)

   {

      //DatasetRapor ’taki Emlak_Il elementimize veri ekliyoruz

      myDataSet.EMLAK_IL.AddEMLAK_ILRow( myTable.Rows[i]["IL_ADI"].ToString(),

      myTable.Rows[i]["PLAKA_KODU"].ToString(),

      myTable.Rows[i]["ILCE_ADI"].ToString(),

      myTable.Rows[i]["POSTA_KODU"].ToString());

   }

   CrystalReport1 TempReport = new CrystalReport1();

   TempReport.SetDataSource(myDataSet);

   TempReport.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4;

   crystalReportViewer1.ReportSource = TempReport;

}



Kod 1: FormRapor adlı formumuz da  kullandığımız ShowForm, Baglan ve LoadReport  fonksiyonlarımız.

Form1 ’de aşağıdaki  Rapor Göster buttonunun altına aşağıdaki kodu yazalım.

private void buttonRaporGoster_Click(object sender, System.EventArgs e)                                 

// Raporu Göstermek için TextBox1 den IL_ID ’yi giriyoruz.

 FormRapor.ShowForm(Convert.ToDecimal(textBox1.Text));

}

Kod 2: Form1 formunu altında ButtonGoster ’i çalıştıracak kod.

Kullanım rahatlığı ve elimizin altında hazır bulunmasından dolayı crystal report ’un daha çok güzel ve kullanımı kolaylaştıran özellikleri var.Bu makalemizde sadece çok azını inceledik.

Makale:
.NET Ortamında "Crystal Report" ile Raporlamaya Giriş ADO.NET ve SQL Feryat Olcay
  • Yazılan Yorumlar
  • Yorum Yaz
EKİ
23
2014
Bilgilendirmeniz için teşekkürler. Mail adresinize ne yazıkki mail atamadım. Sanırım kullanım dışı. Size bu sunumunuzla ilgli takıldığım bir noktayı danışacaktım.
EKİ
23
2014
Bilgilendirmeniz için teşekkürler. Mail adresinize ne yazıkki mail atamadım. Sanırım kullanım dışı. Size bu sunumunuzla ilgli takıldığım bir noktayı danışacaktım.
EKİ
23
2014
Bilgilendirmeniz için teşekkürler. Mail adresinize ne yazıkki mail atamadım. Sanırım kullanım dışı. Size bu sunumunuzla ilgli takıldığım bir noktayı danışacaktım.
ARA
21
2011
merhaba ben crystal reportda bir hata alyıorum kod: Try Dim CrFormatTypeOptions As New PdfRtfWordFormatOptions CrDiskFileDestinationOptions.DiskFileName = PdfFile.Text cryRpt.Export() cryRpt.Close() Catch ex As Exception End Try export işleminde ex = {"Query Engine Error: 'Cannot obtain error message from server.' Failed to open a rowset.
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor