Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

ÖNEMLİ AÇIKLAMA: MUTLAKA OKUYUNUZ!

Gönderen Konu: Run-Time (Çalışma Zamanı) Rapor (FastReport)  (Okunma sayısı 4421 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Fatih

  • Emekli Yönetici
  • *****
  • İleti: 2.217
  • Rep: +43/-10
  • Cinsiyet: Bay
    • Delphi Dünyası
Run-Time (Çalışma Zamanı) Rapor (FastReport)
« : 08 Ekim 2005 15:25:49 »
Run-Time Rapor Oluşturmak şu adımları izlemeliyiz

* frxreport bileşeninin içini temizlemeliyiz.
* tabloyla bağlantı kurulmalı
*rapora rapor sayfası eklemeliyiz.
* rapor sayfasına Bandları eklemeliyiz.
* band özelliklerini ayarlayıp veritabanıyla ilişkilendirmeliy4iz.
* Nesneleri rapora eklemeliyiz.
* nesnelerin özelliklerini ayarlayıp veritabanı bağlantılarını yapmalıyız.
* formunuzda database bağlantınızı yapıp frxReport ve frxDBReport bileşeni ekleyip hiç bir özelliğne dokunmayın.

aşağıdaki değişkenleri tanımlayın.
Kod: [Seç]
var
Page: TfrxReportPage;
Band: TfrxBand;
DataBand: TfrxMasterData;
Memo: TfrxMemoView;

BUTTONUN ONCLİCKİNE aşağıda kodları yazın ve teest edin

Kod: [Seç]
{frxDBDataset1 bileşeni ile tabloya bağlanıyoruz.}
frxDBDataset1.DataSet:=IBQuery1;
{ Raporu Temizle}
frxReport1.Clear;
{ FastReportun Veri Ağacına Tablo Alanlarını Listele }
frxReport1.DataSets.Add(frxDBDataSet1);
{Rapora Sayfa Ekle}
Page := TfrxReportPage.Create(frxReport1);
{ Başka Nesnede olmayan bir isim ver}
Page.CreateUniqueName;
{Alan ve sayfa genişliklerini varsayılan olarak ayarla }
Page.SetDefaults;
{Kenar boşluklarını Ayarla. 10=1 cm}
page.TopMargin:=20;
page.LeftMargin:=20;
{sayfanın boyutunu ayarlayın.1 VE 2.PARAMETREYE SIFIR VERİN.3.PARAMETRE SAYFA GENİŞLİĞİNİ 4.PARAMETRE SAYFA YÜKSEKLİĞİNİ VERİR}
page.SetBounds(0,0,21,29.70);
{raporun yatay veya dikey olması. kullanabilmek için uses'a Printers ekleyin}
page.Orientation:=poLandscape;
{ report title (Sayfa Başlığı) bandı Ekle}
Band := TfrxReportTitle.Create(Page);
Band.CreateUniqueName;
{ band kooordinatlarını veriyoruz. Top Ve Height özellikleri Yeterli}
Band.Top := 0;
Band.Height := 20;
{ Rapor Başlığına Metin Nesnesi Ekle ve Başlığı Yaz }
Memo := TfrxMemoView.Create(Band);
Memo.CreateUniqueName;
Memo.Text := 'Merhaba FastReport!';
Memo.Height := 20;
{ Metin Nesnesini band geniliğince Genişlet}
Memo.Align := baWidth;
{ masterdata bandı ekle }
DataBand := TfrxMasterData.Create(Page);
DataBand.CreateUniqueName;
{masterdata bandının DataSetine forma eklediğimiz frxDBDataSet bileşeninni göster}
DataBand.DataSet := frxDBDataSet1;
DataBand.Top := 100;
DataBand.Height := 20;
{ masterdata ya nesne Ekle}
Memo := TfrxMemoView.Create(DataBand);
Memo.CreateUniqueName;
{ Dataya Bağlan }
Memo.DataSet := frxDBDataSet1;
Memo.DataField := 'FIRST_NAME';
Memo.SetBounds(0, 0, 100, 20);
{nESNEYİ sAĞA HİZALA }
Memo.HAlign := haRight;
{ RAPORU GÖSTER}
frxReport1.ShowReport;  

Kullanıcının raporu düzenlemesini sağlamak için forma frxDesigner bileşenini ekleyip.
frxReport1.DesignReport; komutuyla rapor düzeleme penceresini açın.
Malulen emekli programcı / yazar. Bildiklerini unutmakta olduğundan size cevap veremez.

Çevrimdışı harunoz1984

  • Yeni Üye
  • *
  • İleti: 1
  • Rep: +0/-0
Ynt: Run-Time (Çalışma Zamanı) Rapor (FastReport)
« Yanıtla #1 : 06 Ocak 2010 11:45:41 »
 Fatih hocam merhaba. Öncelekle paylaşmış olduğun bilgiler için çok teşekkür ederim.Yukarıda çalışma zamanı rapor yazmak için verdiğin kodları test ettim ve sorunsuz çalıştı.Ancak benim yapmak istediğim farklı bir şey. Müsadenle anlatıyım yardımcı olursan çok sevinirim.

   kurum adında bir tablom var ve ben rapor sayfasında checkboxlar ile belirlediğim kriterlere göre bir sorgu yaptırıyorum.Bu sorgu sonucunu dbgrid de gösteriyorum. Biraz daha açarsam kullanıcı bir yada birden çok ilçe seçip daha sonra bu seçmiş olduğu ilçelerde faaliyet gösteren bir yada birden çok kurum türü seçip (örnek dershane,kurs) en sonundada raporda görüntülemek istediği alanları seçip listeletiyor. (örnek 1,2,3 ilçelerinde faaliyet gösteren a,b kurumlarının adres,telefon bilgilerini yada 1,2 ilçelerinde faaliyet gösteren a,b,c kurumlarının adres,telefon ve kontenjan bilgilerini)
   Yukarıda ki örnekte de görüldüğü gibi bu sorgu sonucu her dafasında alan sayısı değişmekte.Benim sorunum ise sorgu sonucu dbgridte gösterilen bilgileri rapor edebilmek.
   Senin örnekte çalışma zamanında belirlediğimiz ve tablomuzda olan bir alanı raporlayabiliyoruz.Ancak bunu birden çok alan olarak nasıl yapabilirim. Ben dizi kullanarak ve bu diziyi döngü içine alarak (memo) şeklinde yapmayı düşündüm ama başaralı olamadım.Hocam yardımcı olursanız çok sevinirim. Saygılarımla.