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
  Fastreport İçindekiler Sayfası Oluşturma [ÇÖZÜLDÜ] bydelphi 1 181 18-03-2024, Saat: 12:11
Son Yorum: bydelphi
  Fastreport Masterdata Column mukoly 7 494 23-02-2024, Saat: 19:54
Son Yorum: hi_selamlar
  Çok Satırlı Filtreleme [Çözüldü] bünyamin68 12 1.253 14-02-2024, Saat: 22:42
Son Yorum: mustafaozpinar
  [ÇÖZÜLDÜ] macos işletim sistemine program yazmak shooterman 5 451 02-02-2024, Saat: 09:54
Son Yorum: shooterman
  Fastreport Barkod Tasarımı delphiX14 7 424 31-01-2024, Saat: 20:10
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi