Fastreport ta bazı alanları gizleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ertemsoft
Üye
Mesajlar: 129
Kayıt: 19 Nis 2005 12:22
İletişim:

Fastreport ta bazı alanları gizleme

Mesaj gönderen ertemsoft » 17 Eyl 2016 08:14

selamın aleyküm

arkadaşlar merhaba, Fastreportla bir fatura dökümü yapıyorum çoğu şeyi hallettim . Sorunum şu fatura toplamı yazdırdığım PageFoter alanında
bazı alanları şartlara göre yazdırmak istiyorum.

Bunu PageFoter un OnBeforePrint olayında yapmaya çalışıyorum. Mesela Faturada Tevkifat varsa buna göre bazı alanları yazdırcam.
şu şekilde denedim ancak hata veriyor. Yardımlarınız için şimdiden teşekkür ederim.

<frxDBDataset1."ch_vergi">.value > 0 then
<frxDBDataset1."ch_tkdv">.visible:=false;
Bilgi Paylaştıkça Çoğalır

Kullanıcı avatarı
csunguray
Üye
Mesajlar: 850
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Fastreport ta bazı alanları gizleme

Mesaj gönderen csunguray » 17 Eyl 2016 08:43

Bunu PageFooter da yapmanız zor. Çünkü PageFooter ın yüksekliği sabit olmalıdır. O yüzden Child özelliği yoktur. Bunu eğer Summary de yapmak isteseydik...

ReportSummary1 bandını sağ tıklayıp Çocuk band ekle seçilir. ReportSummary1'in Child bandı olarak Child1 çocuk bandı oluşacaktır. Sonra Child1'i sağ tıklayıp aynısını yapın. Child2 oluşacaktır. Bu şekilde zincirleme olarak Toplam, İndirim, Kdv, Tevkifat, Genel Toplam ın her biri için bir çocuk band oluşturun ve bu değerleri bu bantlara yerleştirin. ReportSummary1 dahil tüm bandların PrintChildIfInvisible özelliğini True yapın. ReportSummary1'in OnBeforePrint olayına aşağıdaki benzeri bir kod yazın.

Kod: Tümünü seç

procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);
begin
  if <frxDBDataset1."ch_vergi"> > 0
    then Child2.Visible := True
    else Child2.Visible := False;
  if <frxDBDataset1."ch_tkdv"> > 0
    then Child3.Visible := True
    else Child3.Visible := False;
end;
Bu kadar....

Eğer "ben illa PageFooter da yapacağım, her görünmeyen satır için sayfanın en altında o satır yüksekliği kadar boşluk kalmasına razıyım" derseniz onu da nasıl yapacağınızı anlatabilirim.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)

ertemsoft
Üye
Mesajlar: 129
Kayıt: 19 Nis 2005 12:22
İletişim:

Re: Fastreport ta bazı alanları gizleme

Mesaj gönderen ertemsoft » 17 Eyl 2016 09:40

merhaba yardımınız için teşekkür ederim. Pagefoter boyutu sabit verdiğiniz örnekteki gibi yapmaya çalıştım ancak şöyle bir hata veriyor
The following have occured Script Error at 7:13:';' expected

procedure PageFooter1OnBeforePrint(Sender: TfrxComponent);
begin

if <frxDBDataset1."ch_tkdv"> = 0
then <frxDBDataset1."ch_tkdv">.visible :=false
else <frxDBDataset1."ch_tkdv">.visible :=true;


end;

begin

end.
Bilgi Paylaştıkça Çoğalır

Kullanıcı avatarı
csunguray
Üye
Mesajlar: 850
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Fastreport ta bazı alanları gizleme

Mesaj gönderen csunguray » 18 Eyl 2016 07:30

Bunlar nedir?
ertemsoft yazdı:then <frxDBDataset1."ch_tkdv">.visible :=false
else <frxDBDataset1."ch_tkdv">.visible :=true;
Bir veri sahasını görünür/görünmez yapamazsınız. Benim verdiğim örnekte band lar görünür/görünmez yapılmaktadır.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)

ertemsoft
Üye
Mesajlar: 129
Kayıt: 19 Nis 2005 12:22
İletişim:

Re: Fastreport ta bazı alanları gizleme

Mesaj gönderen ertemsoft » 18 Eyl 2016 08:03

Şu şekilde çözdüm .başka bir çözüm yolu varmı bilmiyorum ama işimi gördü yardımlarınız için teşekkür ederim.

if baslikqch_tkdv.AsFloat=0 then
begin
TitleEntry := frxReport1.FindObject('frxDBDataset1ch_tkdv') as TfrxMemoView;
TitleEntry.Visible:=false;
end;
Bilgi Paylaştıkça Çoğalır

ismailavci
Üye
Mesajlar: 1
Kayıt: 25 May 2017 09:55

Re: Fastreport ta bazı alanları gizleme

Mesaj gönderen ismailavci » 04 Tem 2017 10:57

csunguray yazdı:Bunu PageFooter da yapmanız zor. Çünkü PageFooter ın yüksekliği sabit olmalıdır. O yüzden Child özelliği yoktur. Bunu eğer Summary de yapmak isteseydik...

ReportSummary1 bandını sağ tıklayıp Çocuk band ekle seçilir. ReportSummary1'in Child bandı olarak Child1 çocuk bandı oluşacaktır. Sonra Child1'i sağ tıklayıp aynısını yapın. Child2 oluşacaktır. Bu şekilde zincirleme olarak Toplam, İndirim, Kdv, Tevkifat, Genel Toplam ın her biri için bir çocuk band oluşturun ve bu değerleri bu bantlara yerleştirin. ReportSummary1 dahil tüm bandların PrintChildIfInvisible özelliğini True yapın. ReportSummary1'in OnBeforePrint olayına aşağıdaki benzeri bir kod yazın.

Kod: Tümünü seç

procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);
begin
  if <frxDBDataset1."ch_vergi"> > 0
    then Child2.Visible := True
    else Child2.Visible := False;
  if <frxDBDataset1."ch_tkdv"> > 0
    then Child3.Visible := True
    else Child3.Visible := False;
end;
Bu kadar....

Eğer "ben illa PageFooter da yapacağım, her görünmeyen satır için sayfanın en altında o satır yüksekliği kadar boşluk kalmasına razıyım" derseniz onu da nasıl yapacağınızı anlatabilirim.

Merhaba üstadlar.Dediğiniz şekilleri denedim ama bi sonuç alamadım.Size kendi yapmak istediğimi şöyle anlatayım.

<Qry_Kalem> adında fastreport'un içinde oluşturduğum bir query'im var.Bu query alanı olan <Qry_Kalem."Vendor"> = '37493' ise Qry_KalemSerial_No adlı memo alanının görünmemesini istiyorum.HightLight kısmında buna benzer işlemler yaptırıyor ama onunlada istediğim şeyi yapamadım.Yardımlarınız için şimdiden teşekkür ediyorum.

Kullanıcı avatarı
csunguray
Üye
Mesajlar: 850
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Fastreport ta bazı alanları gizleme

Mesaj gönderen csunguray » 06 Tem 2017 08:54

ertemsoft yazdı:Merhaba üstadlar.Dediğiniz şekilleri denedim ama bi sonuç alamadım.
Sonuç alamadım derken bir hata mesajı mı alıyorsunuz? Yukarıdaki yöntem benim sıklıkla kullandığım bir yöntemdir ve çalışmaması için bir neden yoktur. Zahmet edip bir sürü açıklama yazdım ve tecrübelerimi sizinle paylaştım. Ama bunun sonucunda "Olmuyor, boşverelim, başka bir şeye geçelim" yaklaşımı çok saygısızca.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)

bilal09
Üye
Mesajlar: 26
Kayıt: 28 Haz 2017 09:21

Re: Fastreport ta bazı alanları gizleme

Mesaj gönderen bilal09 » 24 Tem 2017 10:42

merhaba,

@csunguray benzer işlemleri ben yazdırma buton tuşlama işleminde kullanıyorum. basitçe if şöyleyse fastrepor içindeki memo alana ulaşıp visible si ile oynuyorum. şart uyuyorsa gösteriyor uymuyorsa göstermiyor.

ama yukarıda belirtildiği üzere aradaki boşluklar kalabilir ve sayfada istenmeyen uzamalar oluşabilir.

kolay gelsin

Cevapla