FastReport ta Interactive Raporlar Uygulamak

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

FastReport ta Interactive Raporlar Uygulamak

Mesaj gönderen vkamadan »

Merhaba arkadaşlar,
Benim çok kullandığım ve uygulamalara hem görsel hemde işlevsen yönden artı kazandıran Interactive rapor uygulamalarını bilmeyen arkadaşlarımız için elimden geldiğince açık bir dille anlatmaya çalışacağım.

Örnekte birbiriyle ilişkili 2 tabloyu datasource olarak kullanan 2 adet raporun daha önce yazılmış makalelerde ayrıntılı bir şekilde anlatıldığı gibi tasarlandığını varsayıyorum.

Bu iki farklı raporu iki farklı TfrxReport objesine çağırıyoruz.

Örneğin Cari hesapların tutulduğu bir tabloyu baz alarak Genel Borç-Alacak listesi oluşturduğumuzu ve bu listeyi ekrana aldığmızda raporda kişinin hesap koduna tıkladığmızda İcmali verilen hesabın bir Ekstre mantığında Detaylarının görüntülenmesini istediğimizi varsayalım.


Resim

Resimde ki mavi işaretli alanda görüldüğü gibi TfrxMemoview in TagStr özelliğine detay tablo ile ana tablo arasında ilişki sağlayan ortak alanın veri alanı bağlantısını yapıyoruz.

Son olarak Ana raporu bağladığımız TFrxReport objesinin OnClickObject olay metoduna detay raporumuzun datasetini uygun kriterlere göre çağıracak aşağıdaki yapıya benzer kodu yazıyoruz.

Kod: Tümünü seç

procedure Trapormenu.frxReport1ClickObject(Sender: TfrxView;
  Button: TMouseButton; Shift: TShiftState; var Modified: Boolean);
begin
   if sender.name='Memo3' then // Burada Tıklanan nesnenin memo3 yani TagStr sine atama yaptığımız nesne olup olmadığını kontrol ediyoruz
  begin
     with qDetay do
      begin
         close;
         sql.clear;
         sql.add('select *from detaytablo where ortakalan=:deger'); 
         params[0].AsString:=sender.TagStr;
         Active:=True;
      end;
FrxREport2.ShowReport;  // ve son olarak qDetay a bağlı detay raporumuzu çağırıyoruz.
  end;
end;
Sonuçta ,

Resim

gibi bir raporda TagStr özelliğini belirttiğimiz taralı alandaki rapor nesnesine tıkladığımızda OnClickObject olayı tetiklenir ve Tıkladığımız satırdaki kayıdın TAgStr ye bağladığımız alanının değeri sender.TagStr ye aktarılır.


Resim

gibi detay raporumuz oluşturulmuş olur.

iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

çok açıklayıcı olmuş volkan hocam
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Eline sağlık, teşekkürler.. :)
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla