Tüm Platformlar için Hızlı Uygulama Geliştirme Kitabı... Delphi
Ön Sipariş Talebinde Bulunan Üyelerimiz
Sipariş Talebinde Bulunan Üyelerimiz

Konuyu Paylaş : facebook gplus twitter

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ı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhabalar,

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ı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(10-01-2019, Saat: 18:14)hi_selamlar Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhabalar,

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ı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(10-01-2019, Saat: 18:39)csunguray Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlTotalPages# 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ı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(10-01-2019, Saat: 19:01)hi_selamlar Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlCevabı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ı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(10-01-2019, Saat: 19:01)hi_selamlar Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlCevabı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

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [Çözüldü] FMX VLC Player Desteği CesuR 6 142 18-01-2019, Saat: 09:18
Son Yorum: Tuğrul HELVACI
  DBGRID Indicator Sorunu [Çözüldü] SenayAkgun 10 179 16-01-2019, Saat: 18:10
Son Yorum: masteryoda
  [Çözüldü] String Grid Sayı Algoritması CesuR 10 246 12-01-2019, Saat: 04:26
Son Yorum: CesuR
  [Çözüldü] Stringgrid özellik iptal etme CesuR 4 131 11-01-2019, Saat: 15:18
Son Yorum: CesuR
  is not a valid floating point value Hatası [ÇÖZÜLDÜ] SenayAkgun 16 378 23-12-2018, Saat: 22:07
Son Yorum: mustafaozpinar



Konuyu Okuyanlar: 1 Ziyaretçi