|
.NET Ortamında "Crystal Report" ile Raporlamaya Giriş |
|
Gönderiliyor lütfen bekleyin... |
|
|
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
|
|
|
-
-
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
|
|