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.

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;

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.

gibi detay raporumuz oluşturulmuş olur.
iyi çalışmalar.