Mega Code Archive

 
Categories / Delphi / Strings
 

Qreport

Borland Delphi'de QReport Bileşenleri ile Rapor Hazırlama Daha önceki bölümlerde veri tabanını nasıl oluşturduğumuzu ve bu veri tabanına yazmış olduğumuz verileri nasıl sorgulayıp listelediğimizi görmüştük.Şimdi ise yapmış olduğumuz işlerin meyvesini almaya geldi. Nasıl mı? Tabiki QReport ile...QReport ile Printer'dan çıktı alabiliriz.Şimdi QReport'un özelliklerini inceleyelim. " Bölüm ( Band ) yapısına dayanan rapor üretici " QReport bileşenleri ile görsel rapor tasarımı " Rapor çıktısı verme " Anında önizleme imkanı " Limitsiz Memo alanları " Limitsiz Grup sayısı " Karmaşık rapor tasarımı " İsteğe uyarlanabilir rapor tasarımı " Yazdırılabilir grafik formatları " Geliştirilmiş hesap ifadeleri " Tam yazıcı kontrolü vb.diğer özellikler... Şimdi adım adım Rapor oluşturmaya başlayalım.Bir rapor formu en basit aşağıdaki bileşenlerden meydana gelir. DataSet ( TTable ) elemanı QuickReport ( TTable ile bağlantılı ) QuickReport üzerine alınan QRBand bileşeni TQuickRep elemanının Bands özelliği altındaki HasDetail özelliğinin True yapılması Detail bölümü üzerine yazılabilir TQRDBText elemanı Bunları öğrendikten sonra raporumuzu hazırlamaya devam edelim.İlk önce Formumuza Data Access kısmından TTable kontrolünü yerleştirelim.Table1'in Object Inspector'ündeki DatabaseName özelliğini oluşturduğumuz aliası ( Ben liste.dbf oluşturdum.Sizde oluşturduğunuz veri tabanını seçin.) seçelim.TableName 'de veritabanının ismini seçelim.Table1'in Active özelliğini True yapalım.Sonra QReport kısmından QuickRep1 elemanın yerleştirelim ve DataSet özelliğini Table1 yapalım.Daha sonra Bands özelliğine tıklayıp HasDetail özelliğini True yapalım.Bu işlem ile form üzerine veri alanlarının yer alacağı bölümü eklemiş olduk.Şimdi bir örnek yapalım. Örnek :Yukarıdaki işlemleri gerçekleştirdikten sonra QReport kısmından 5 adet QRDBText kontrolü alıp Details kısmına yerleştirelim ve herbir QRDBText'in Dataset özelliğini Table1 ve DataField özelliğinide liste.dbf'de bulunan sütun alanlarından birini seçelim ( Mesela ADI , SOYADI , ADRESI ).Basit bir rapor yapmış olduk.Şimdi tasarım zamanındaki raporu görebilmek için QuickRep1'in üzerindeyken Mouse'ın sağ tuşuna tıklayalım.Karşımıza bir menü çıkar.Şimdi bu menüdeki özellikleri inceleyelim. Report Setting :Tasarım zamanı rapor ile ilgili ayarların yer aldığı pencereye ulaşılır. Zoom in :Tasarım zamanında rapor üzerindeki bileşenler daha büyük gösterilir. Zoom Out :Tasarım zamanında rapor üzerindeki bileşenler daha küçük gösterilir. Rotate Band View :Rapor üzerinde yer alan bileşenlerin yerleri değiştirilir. Hide Bands :Bu özellikle bileşenler gizlenir. Reset :Gizlenen bölümleri tekrar gösterir. Preview :Bu özellik ; Raporumuzun ekran görüntüsünü çıkarır. Raporla İlgili Ayarlar Tasarım zamanında raporla ilgili ayarların yapılabilmesi için QuickRep1 ' e sağ tıklanır.Açılan menüde Report Setting seçeneği seçilir.Açılan menüde ; Paper Size :Kağıdın tipi belirlenir. Length :Sayfa uzunluğu belirlenir. Width :Sayfa genişliği belirlenir. Margins :Kenarlarda bırakılacak boşluk miktarı belirlenir. Column Space :Sütun genişliği belirlenir. Number of Columns :Sütun sayısı belirlenir. Other :Bu kısımda raporda kullanılacak font adı , büyüklüğü ve ölçü birimi ayarlanır. Page Frame :Bu bölümde ise rapor önizleme modunda iken gözükecek çerçeveler ,çerçevenin rengi , kalınlığı ayarlanır. Bands :Rapora eklenecek bölümler ( Band ) seçilir. Page Header :Rapora Sayfa Başlığı verilir. Title :Başlık girilir. Column Header :Sütun başlıkları girilir. Detail Band :Veri alanlarının yer aldığı bölümdür. Page Footer :Sayfanın altında yer alan sayfa alt bilgilerini ekler. Summary :Raporla ilgili ek açıklamaları ekler. Çalışma Anında Rapor Önizleme Bunun için şu işlemleri yapınız.İlk önce Formumuza bir Button ekleyin ve bu button1'in Caption özelliğine Raporla yazınız.Daha sonra butonun OnClick kısmına aşağıdaki kodu yazınız. Procedure TForm1.RaporlaClick ( Sender : TObject ) ; begin QuickRep1.Preview ; end; Programı çalıştırıp Raporla butonuna bastığımız zaman raporumuzun ekran görüntüsü karşımıza gelir. Not :Kayıtları direk yazıcıya göndermek istiyorsak Butonun OnClick olayına şu kodu yazacağız. QuickRep1.Print ; Wizard Kullanarak Rapor Hazırlama " File / New Aplication 'u seçin. " File / New menüsünden Business kısmına geçiniz.Buradan QuickReport Wizard seçeneğini seçiniz.Sonra Ok düğmesine basınız. " Çıkan pencerede Start Wizard düğmesiyle bir sonraki adıma geçelim. " Alias or Directory kutusunda bağlantı kuracağımız veritabanının bulunduğu dizini seçiyoruz.Table Name kısmınada veri tabanımızın ismini seçiyoruz. " Tablo seçildikten sonra ; tablomuzda yer alan sütunlar görülecektir.Raporda bulunmasını istediğimiz alanları belirleyip > veya hepsini seçersek >> tuşuyla sağ taraftaki listeye alalım ve bu işlemi bitirdikten sonra Finish düğmesine basalım.Böylece Wizard kullanarak otomatik olarak raporumuzu oluşturmuş bulunuyoruz. Veri Süzmek ve Sıralamak QuickReport ; verileri sıralayacak herhangi bir özelliğe sahip değildir.Veriler girildikleri sırada basılırlar.Veri tabanı içindeki veri alanlarının index olarak tanımlanması gerekir.Bu işlemden sonra TTable elemanının IndexName özelliği ile belirtilmesi gerekir.TQuery elemanıylada istenilen şekilde verileri süzmek mümkündür.Veri süzme birkaç şekilde yapılır.TTable.Filter özelliği bir süzme koşulu ekler.Bu sırada TTable.Filtered özelliği True olması gerekir.Diğer yol SQL kullanılarak istenilen kayıtları elde etmektir.Bir diğer seçenek ise Detail bandının PrintEvent olayını kullanmaktır. Sayfa Büyüklüğü ve Kenar Boşluklarını Ayarlama Bunun için QuickRep1 elemanının Page özelliğine tıklanarak açılan alt özellikler aracılığıyla rapor tasarımında kullanılacak olan sayfanın büyüklüğü ve kenar boşlukları kolay bir şekilde ayarlanır. Not :QuickRep1'in içinde varsayılan yazı tipleri seçilebilir.bunun için Font özelliğine tıklanması gerekir.Burada font adı , tipi ,rengi fontun altı veya üstü çizili olma durumu ayarlanabilir. Rapor Başlığı Rapor tanımlama QuickReport'un Description özelliği ile yapılır.Bu seçeneği tıklayalım ve açılan pencereye raporla ilgili bilgileri girelim.Bir rapor başlığı TQRSysData elemanı aracılığıyla yazdırılabilir.Başlık aşağıdaki kodla oluşturulabilir. Örnek : procedure TForm1.Button1Click(Sender :TObject ) ; begin with QuickRep1 do begin Report Title := ' Personel Bilgisi Raporu ' ; Bands.HasTitle := True ; with TQRSysData ( Bands.TitleBand.AddPrintable ( TQRSysData ) ) do begin Data := qrsReportTitle ; AlignToBand := true ; Aligment := taCenter ; end ; Preview ; end ; end ; Bir Rapora Bölüm Eklemek Bir rapora bölüm eklemek için Object Inspector penceresinden TQuickRep elemanına ait Bands özelliğine tıklamak ve çıkan alt bölümdeki özelliklerin değerini true yapmaktır. Quick Report'ta Kullanılan Operatörler Operatör Açıklama + Toplama - Çıkarma * Çarpma / Bölme ( ) Parantez And Mantıksal And Or Mantıksal Or Not Mantıksal Not = Eşit < Küçük > Büyük <= Küçük eşit >= Büyük eşit < > Eşit değil QuickReport Fonksiyonları Date :Mevcut tarihi string olarak geri gönderir.Rapor üzerine QRExpr elemanı alınarak Expression özelliğine Date verilerek kullanılır. Time :Mevcut saati stringe çevirir.Rapor üzerine QRExpr elemanı alınarak Expression özelliğine Time verilerek kullanılır. Str ( sayı ) :Sayısal bir ifadeyi stringe çevirir. Copy(str,s,l):Bir ifadenin içinde bulunan belli bir bölümü geri gönderir. Rapora Sayfa Numarası ve Tarih Eklemek Raporumuza sayfa numarası ve tarih eklemek için ; rapor üzerine QRB elemanı alarak BandType özelliğini rbPageFooter yapalım.Daha sonra QRSYSData kontrolünden iki tane alıp birincisinin Data özelliğini qrsDate ve Text özelliğine "Basım Tarihi ", ikincisinin Data özelliğini qrsPageNumber ve Text özelliğini de " Sayfa : " yapalım.Raporu Preview'e tıklayarak önizlemeye alırsak sayfanın sonunda Basım Tarihi ve Sayfa Numarasının yazılmış olduğunu görürüz.