Delphi Can

Orjinalini görmek için tıklayınız: FastReport - Runtime Band Gizleme - [ÇÖZÜLDÜ]
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
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.
(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
(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.
(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;
(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
(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.