Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
FastReport - Runtime Band Gizleme - [ÇÖZÜLDÜ]
#1
Merhabalar,

Fastreport ile fatura tasarımı yapıyorum. (Uzun bir aradan sonra.)

Fakat takıldığım bir sorun oldu. Aslında mantık bende mi hatalı yoksa raporda mı bir sıkıntı var anlamadım.
Yapmaya çalıştığım işlem Footer ve Header band'larını çalışma zamanında (rapor ekrana gelirken) belli kriterlere
göre gizlemek veya göstermek. Eğer fatura sayfası 1 den fazla ise nakli yekün yazdırmak (Değeri ile) değilse gizlemek.

 <Page#> ve <TotalPages#> deneme amaçlı ekrana yazdırdığımda sonuçlar doğru geliyor.
Sayfa : 1 toplam sayfa : 2
Sayfa : 2 toplam sayfa : 2 şeklinde.
Ama kod da algılamıyor işlemi.

Teşekkürler.

Örnek Kod;

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
   toplam:=toplam+<Fatura_Alt."genel_toplam">;                                        
end;

procedure PageFooter1OnBeforePrint(Sender: TfrxComponent);
begin
   if (<Page#>=<TotalPages#>) then
  begin
       PageFooter1.Visible:=True;
       Subreport1.Visible:=True;                              
   end
   else
   begin
     PageFooter1.visible:=False;
     Subreport1.Visible:=False;          
   end;              
end;




Saygılar.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#2
(10-01-2019, Saat: 18:14)hi_selamlar Adlı Kullanıcıdan Alıntı: Merhabalar,

Fastreport ile fatura tasarımı yapıyorum. (Uzun bir aradan sonra.)

Fakat takıldığım bir sorun oldu. Aslında mantık bende mi hatalı yoksa raporda mı bir sıkıntı var anlamadım.
Yapmaya çalıştığım işlem Footer ve Header band'larını çalışma zamanında (rapor ekrana gelirken) belli kriterlere
göre gizlemek veya göstermek. Eğer fatura sayfası 1 den fazla ise nakli yekün yazdırmak (Değeri ile) değilse gizlemek.

 <Page#> ve <TotalPages#> deneme amaçlı ekrana yazdırdığımda sonuçlar doğru geliyor.
Sayfa : 1 toplam sayfa : 2
Sayfa : 2 toplam sayfa : 2 şeklinde.
Ama kod da algılamıyor işlemi.

Teşekkürler.

Örnek Kod;

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
   toplam:=toplam+<Fatura_Alt."genel_toplam">;                                        
end;

procedure PageFooter1OnBeforePrint(Sender: TfrxComponent);
begin
   if (<Page#>=<TotalPages#>) then
  begin
       PageFooter1.Visible:=True;
       Subreport1.Visible:=True;                              
   end
   else
   begin
     PageFooter1.visible:=False;
     Subreport1.Visible:=False;          
   end;              
end;




Saygılar.

TotalPages# değişkeni sadece raporun EngineOptions.DoublePass özelliği aktifse geçerlidir. Bu modda FastReport raporun üzerinden iki kez geçecektir. Peki kaçıncı kez geçtiğini nasıl anlayacağız? FinalPass boolean değişkeni de bize son geçiş olup olmadığını söyleyecektir. Kodunuzu bunlara dikkat ederek düzenlerseniz sorunu çözersiniz
WWW
Cevapla
#3
(10-01-2019, Saat: 18:39)csunguray Adlı Kullanıcıdan Alıntı:
(10-01-2019, Saat: 18:14)hi_selamlar Adlı Kullanıcıdan Alıntı: Merhabalar,

Fastreport ile fatura tasarımı yapıyorum. (Uzun bir aradan sonra.)

Fakat takıldığım bir sorun oldu. Aslında mantık bende mi hatalı yoksa raporda mı bir sıkıntı var anlamadım.
Yapmaya çalıştığım işlem Footer ve Header band'larını çalışma zamanında (rapor ekrana gelirken) belli kriterlere
göre gizlemek veya göstermek. Eğer fatura sayfası 1 den fazla ise nakli yekün yazdırmak (Değeri ile) değilse gizlemek.

 <Page#> ve <TotalPages#> deneme amaçlı ekrana yazdırdığımda sonuçlar doğru geliyor.
Sayfa : 1 toplam sayfa : 2
Sayfa : 2 toplam sayfa : 2 şeklinde.
Ama kod da algılamıyor işlemi.

Teşekkürler.

Örnek Kod;

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
   toplam:=toplam+<Fatura_Alt."genel_toplam">;                                        
end;

procedure PageFooter1OnBeforePrint(Sender: TfrxComponent);
begin
   if (<Page#>=<TotalPages#>) then
  begin
       PageFooter1.Visible:=True;
       Subreport1.Visible:=True;                              
   end
   else
   begin
     PageFooter1.visible:=False;
     Subreport1.Visible:=False;          
   end;              
end;




Saygılar.

TotalPages# değişkeni sadece raporun EngineOptions.DoublePass özelliği aktifse geçerlidir. Bu modda FastReport raporun üzerinden iki kez geçecektir. Peki kaçıncı kez geçtiğini nasıl anlayacağız? FinalPass boolean değişkeni de bize son geçiş olup olmadığını söyleyecektir. Kodunuzu bunlara dikkat ederek düzenlerseniz sorunu çözersiniz

Cevabınız için teşekkür ederim.
Report.EngineOptions.DoublePass = True olarak güncelledim.

Fakat FinalPass için biraz araştırma yapacağım. Yardım bilgilerini incelemem gerekli. Hatırlayamadığım için.
İşlem neticesini tekrar paylaşacağım.

Saygılar.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#4
(10-01-2019, Saat: 19:01)hi_selamlar Adlı Kullanıcıdan Alıntı:
(10-01-2019, Saat: 18:39)csunguray Adlı Kullanıcıdan Alıntı: TotalPages# değişkeni sadece raporun EngineOptions.DoublePass özelliği aktifse geçerlidir. Bu modda FastReport raporun üzerinden iki kez geçecektir. Peki kaçıncı kez geçtiğini nasıl anlayacağız? FinalPass boolean değişkeni de bize son geçiş olup olmadığını söyleyecektir. Kodunuzu bunlara dikkat ederek düzenlerseniz sorunu çözersiniz

Cevabınız için teşekkür ederim.
Report.EngineOptions.DoublePass = True olarak güncelledim.

Fakat FinalPass için biraz araştırma yapacağım. Yardım bilgilerini incelemem gerekli. Hatırlayamadım için.
İşlem neticesini tekrar paylaşacağım.

Saygılar.

Birincisi eğer toplamlarınız 2 kat çıkmışsa kodnuzu şu şekilde güncellemeniz gerekir.

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
  if FinalPass then Toplam := Toplam + <Fatura_Alt."genel_toplam">;
end;

İkincisi sanırım kodunuzu aşağıdaki şekilde yazmanız gerekir:

procedure PageFooter1OnBeforePrint(Sender: TfrxComponent);
begin
  if FinalPass then
    if (<Page#>=<TotalPages#>) then
     begin
        PageFooter1.Visible:=True;
        Subreport1.Visible:=True;                              
    end else
    begin
      PageFooter1.visible:=False;
      Subreport1.Visible:=False;          
    end;              
  end;
end;
WWW
Cevapla
#5
(10-01-2019, Saat: 19:09)csunguray Adlı Kullanıcıdan Alıntı:
(10-01-2019, Saat: 19:01)hi_selamlar Adlı Kullanıcıdan Alıntı: Cevabınız için teşekkür ederim.
Report.EngineOptions.DoublePass = True olarak güncelledim.

Fakat FinalPass için biraz araştırma yapacağım. Yardım bilgilerini incelemem gerekli. Hatırlayamadım için.
İşlem neticesini tekrar paylaşacağım.

Saygılar.

Birincisi eğer toplamlarınız 2 kat çıkmışsa kodnuzu şu şekilde güncellemeniz gerekir.

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
  if FinalPass then Toplam := Toplam + <Fatura_Alt."genel_toplam">;
end;

İkincisi sanırım kodunuzu aşağıdaki şekilde yazmanız gerekir:

procedure PageFooter1OnBeforePrint(Sender: TfrxComponent);
begin
  if FinalPass then
    if (<Page#>=<TotalPages#>) then
     begin
        PageFooter1.Visible:=True;
        Subreport1.Visible:=True;                              
    end else
    begin
      PageFooter1.visible:=False;
      Subreport1.Visible:=False;          
    end;              
  end;
end;

Bilgilendirme için çok teşekkür ederim.
Deneyerek en kısa sürede bilgi vereceğim.
Teşekkürler 

Saygılar
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#6
(10-01-2019, Saat: 19:09)csunguray Adlı Kullanıcıdan Alıntı:
(10-01-2019, Saat: 19:01)hi_selamlar Adlı Kullanıcıdan Alıntı: Cevabınız için teşekkür ederim.
Report.EngineOptions.DoublePass = True olarak güncelledim.

Fakat FinalPass için biraz araştırma yapacağım. Yardım bilgilerini incelemem gerekli. Hatırlayamadım için.
İşlem neticesini tekrar paylaşacağım.

Saygılar.

Birincisi eğer toplamlarınız 2 kat çıkmışsa kodnuzu şu şekilde güncellemeniz gerekir.

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
  if FinalPass then Toplam := Toplam + <Fatura_Alt."genel_toplam">;
end;

İkincisi sanırım kodunuzu aşağıdaki şekilde yazmanız gerekir:

procedure PageFooter1OnBeforePrint(Sender: TfrxComponent);
begin
  if FinalPass then
    if (<Page#>=<TotalPages#>) then
     begin
        PageFooter1.Visible:=True;
        Subreport1.Visible:=True;                              
    end else
    begin
      PageFooter1.visible:=False;
      Subreport1.Visible:=False;          
    end;              
  end;
end;

İlginiz için teşekkür ederin.

İşlemi bu şekilde tamamladım. Elinize sağlık.

alX3Bg.png


Saygılar.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [Çözüldü] - Google Cloud Platformunda OAuth 2.0 ile Dinamik Token Nasıl Alınır? Fesih ARSLAN 14 512 2 saat önce
Son Yorum: Bay_Y
  Fastreport Raporda kullanılabilecek alanların listesi cinarbil 2 120 03-05-2019, Saat: 08:01
Son Yorum: cinarbil
  Çözüldü Fastreport degisken alan yazdırma cinarbil 5 199 25-04-2019, Saat: 16:37
Son Yorum: cinarbil
  [ÇÖZÜLDÜ]Tarih ve Saat aralığı sorgulama wiseman 39 754 23-04-2019, Saat: 17:17
Son Yorum: wiseman
  Fastreport nesne kontrolu ve veri yazma cinarbil 3 136 18-04-2019, Saat: 08:16
Son Yorum: cinarbil



Konuyu Okuyanlar: 1 Ziyaretçi