Bu koddaki hata nerede.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Bu koddaki hata nerede.

Mesaj gönderen ikutluay »

aşağıdaki kodla amaçlanan şey şudur. özel bir indirim yapılmamışsa "ilk toplam" yazısı "genel toplam" olacak, ve özel indirimlerin gösterildiği alanlarda gizlenecek. ancak kod beklediğim işi yapmıypr. bu yapıyı defalarca sorunsuz kullandım. Ama şimdi sonuç alamıyorum. sorun nerede. Program sorunsuz derleniyor ve çalışıyor ama raporda istediğim alanlar değişmiyor ve gizlenmiyor

Kod: Tümünü seç

var
  Tmp:TfrxMemoView;
begin
          frxReport1.LoadFromFile('aaa.fr3');
          frxReport1.PrepareReport(True);
          if Dm.TblOfrHdrOfrFinalDiscount.AsFloat<1 then
           begin
              Tmp := frxreport1.FindObject('Memo5') as TfrxMemoView;
              Tmp.Text := 'Genel Toplam ';
              Tmp := frxreport1.FindObject('Memo21') as TfrxMemoView;
              Tmp.Visible:=False;
              Tmp := frxreport1.FindObject('Memo24') as TfrxMemoView;
              Tmp.Visible:=False;
              Tmp := frxreport1.FindObject('Memo22') as TfrxMemoView;
              Tmp.Visible:=False;
              Tmp := frxreport1.FindObject('Memo25') as TfrxMemoView;
              Tmp.Visible:=False;
           end;
          frxreport1.ShowPreparedReport;
   
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Re: Bu koddaki hata nerede.

Mesaj gönderen ikutluay »

Raporun kendi içine yazdığım kodla çözdüm sorunu

Kod: Tümünü seç

procedure Memo21OnBeforePrint(Sender: TfrxComponent);
begin
  if <frxDBDataset1."OfrFinalNote">='' then 
  begin
    Memo5.text:='Genel Toplam';
    memo21.visible := False;
    memo22.visible := False;
    memo24.visible := False;        
    memo25.visible := False;      
  end
  else
    begin                         
     memo25.DisplayFormat.FormatStr:='%2.2m';
     memo25.DisplayFormat.Kind:=fkNumeric;
     memo25.DisplayFormat.ThousandSeparator:='.';    
     memo25.Text:=<SUM(<frxDBDataset2."ofLnTotal">,MasterData1)>-<frxDBDataset1."OfrFinalDiscount">;
   end;
end;
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Bu koddaki hata nerede.

Mesaj gönderen csunguray »

PrepareReport yaptıktan sonra rapor hazırlanmış ve iş bitmiştir. Önizleme sayfaları haricinde artık bir şeyi değiştiremezsin. Böyle bir görevi FastReport içerisinden yazman daha iyi olmuş. Eğer Delphi içerisinden yapmak istiyorsan raporun OnBeforePrint özelliğini kullanman gerekir.

Kod: Tümünü seç

procedure TFormKayitR.frxReport1BeforePrint(
  Sender: TfrxReportComponent);
begin
  inherited;
  //
end;
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/)
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Re: Bu koddaki hata nerede.

Mesaj gönderen ikutluay »

Cevabı yazdıktan sonra kurcalarken dediklerini farkettim ustam.

Ayrıca FR içinden kodlama konusunda sana katılıyorum. Raporun içinden kodlamak daha pratik geldi. Üstelikte programı yeniden derlemek gibi bir derdinde olmuyor... Bu fastreport ile cidden güzel işler çıkıyor inceleyince.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Cevapla