Delphi Can
[ÇÖZÜLDÜ SOLVED] Fast Report Kontrollü Component Gizleme - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: [ÇÖZÜLDÜ SOLVED] Fast Report Kontrollü Component Gizleme (/showthread.php?tid=5035)



[ÇÖZÜLDÜ SOLVED] Fast Report Kontrollü Component Gizleme - 3ddark - 01-07-2020

Örnek Dataset(Query) içeriği

id, ad, soyad, yas, is_goster
---------------------------
1, Ali, Ak, 21, True
2, Veli, Kara, 24, False
3, Ahmet, Kısa, 27, False
4, Mehmet, Uzun, 24, True

Rapor Ekranındaki bilgiler
memoAd       -       memoSoyad       -       memoYas

Ben yukarıdaki 4 kayıtta görüneceği üzere 2 ve 3. kayıtlarda is_goster bilgisi False olduğu için memoYas kutucuğunun Visible özelliğinin False olmasını istiyorum.
Bunu nasıl yapabilirim.

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
  //MasterData1.DataSet.Value['is_goster'];    Buradaki şekilde istenilen bilgiye erişebiliyoruz. Bu şekilde çözüm buldum. OnBeforePrint kısmına da kontrol kodumu yazınca oldu.
   memoYas.visible := MasterData1.DataSet.Value['is_goster'];
end;

Ayrıca yukarıdaki çözüm rapor form tasarım ekranından yapılmıştı.
Bu çözümde raporun çağırıldığı delphi formundan.
procedure TfrmX.frxReport1BeforePrint(Sender: TfrxReportComponent);
var
 LObj: TfrxMemoView;
 AGoster: Boolean;
begin
 AGoster := frxReport1.DataSets.Items[0].DataSet.Value['is_goster'];
 LObj := frxrprtBase.FindObject('memoYas') as TfrxMemoView;
 if Assigned(LObj) then
   LObj.Visible := AGoster;
 end
end;