fast report değişkene değer atama hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
TURGUT
Üye
Mesajlar: 54
Kayıt: 27 May 2005 03:19
Konum: ANKARA/ETİMESGUT

fast report değişkene değer atama hatası

Mesaj gönderen TURGUT »

Fast Report 3.03 versiyonunu kullanıyorum. formdan rapordaki değişkene değer atıyorum raporu ön izleme yaptığımda aşağıdaki hatayı alıyorum.
Resim
Hatanın virgüllü değer atamasından kaynaklandığını düşündüm

Kod: Tümünü seç

frxReport2.Variables.Variables['m1']:=trunc(m/a);
bu şekilde düzeltme yaptım sorun devam ediyor. Sebebi neden olabilir.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: fast report değişkene değer atama hatası

Mesaj gönderen aslangeri »

s.a.
parametrelere değer atarken string olarak ve tırnak içinde değer atın. öyle deneyin.
kolay gelsn.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: fast report değişkene değer atama hatası

Mesaj gönderen Lost Soul »

quotedstr ile atamayı yapın.
Kullanıcı avatarı
barutali
Üye
Mesajlar: 297
Kayıt: 02 Tem 2007 02:30

Re: fast report değişkene değer atama hatası

Mesaj gönderen barutali »

frxReport2.Variables.Variables['<m1>']:=trunc(m/a);

olarak denermisin
amatör küme programcı :D
TURGUT
Üye
Mesajlar: 54
Kayıt: 27 May 2005 03:19
Konum: ANKARA/ETİMESGUT

Re: fast report değişkene değer atama hatası

Mesaj gönderen TURGUT »

barutali,Lost Soul,aslangeri söylediklerinizi yaptım fakat aynı hatayı alıyorum
Kullanıcı avatarı
barutali
Üye
Mesajlar: 297
Kayıt: 02 Tem 2007 02:30

Re: fast report değişkene değer atama hatası

Mesaj gönderen barutali »

sadece memonun içeriğini değiştirmek istiyorsan yani değişkenden atamak zorunluluğu yoksa aşağıdaki gibi yapabilirsin

Kod: Tümünü seç

 var
  m : TfrxMemoView;
begin
 m:= frxReport1.FindObject('Memo1') as TfrxMemoView;  // memo1 frxreportta bulunan memonun adı
 m.Text := IntToStr(trunc(100/3)); // 33 olarak değer döndürcek ..
 frxReport1.ShowReport(true); // raporu göstercek 
amatör küme programcı :D
TURGUT
Üye
Mesajlar: 54
Kayıt: 27 May 2005 03:19
Konum: ANKARA/ETİMESGUT

Re: fast report değişkene değer atama hatası

Mesaj gönderen TURGUT »

barutali dediğin yönetm ile de denedim fakat bu seferde access denied hatası verdi aslında benim değişkene atarak bu işi çözmem gerekiyor.
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: fast report değişkene değer atama hatası

Mesaj gönderen Lost Soul »

o zaman siz bu memo nesnesini band üzerinde kullanıyorsunuz demektir.
bu durumda rapor nesnesinin OnGetValue özelliğini kullanmanız gerekir.

Kod: Tümünü seç

procedure TRaporlar.RaporumGetValue(const VarName: string; var Value: Variant);
begin
 if VarName='m1' then Value := trunc(m/a);
end;
gibi
TURGUT
Üye
Mesajlar: 54
Kayıt: 27 May 2005 03:19
Konum: ANKARA/ETİMESGUT

Re: fast report değişkene değer atama hatası

Mesaj gönderen TURGUT »

Kod: Tümünü seç

procedure TForm6.BitBtn1Click(Sender: TObject);
var
m,a,b,t,a1,a2:integer;
begin
query1.First;
m:=0;
a:=0;
b:=0;
t:=0;
a1:=0;
a2:=0;
while not query1.Eof do
begin
if (query1btarih.AsDateTime >= strtodate('01.01.2010')) and (query1btarih.AsDateTime <=strtodate('31.01.2010')) then
 begin
      if (query1parca.AsString='Mil') or (query1parca.AsString='Mil + Bobinaj') then
      begin
       m:=m+query1gun.Value;
        a:=a+1;
        edit3.Text:=floattostr(m/a);
        frxReport2.Variables.Variables['m1']:=trunc(m/a);
        frxReport2.Variables.Variables['ma1']:=a;
      end;
Lostsoul gönderdiğin kodları döngü içersinde nasıl kullanabilirim döngü içine girdiğinde değer atıyor. (m) değişkeni başka bir tarih aralığında tekrar kullaanıyor. gönderdiğin şekilde uygularsam son aldığı değeri gösterecek.
Program içinde kullanım yerini de gönderiyorum. Bu şekilde raporda 48 adet değişken var bu kodlar her ay ve çeşitli parçalar için tekrarlanıyor bu hata ilk değişkende verdiği için önce bu çözmem gerekiyor. tahminim bu hata çözüldüğünde diğerleri de aynı mantık olduğundan çözülecek.
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: fast report değişkene değer atama hatası

Mesaj gönderen Lost Soul »

aslında cevabı zaten yazmışsınız.
While not eof döngüsüne ihtiyacınız yok zira o işi rapor kendisi hallediyor.
siz sadece o anki kayıtla ilgili işinizi yapacaksınız

yani

Kod: Tümünü seç

if VarName = ma then
if (query1parca.AsString='Mil') or (query1parca.AsString='Mil + Bobinaj') then
      begin
       m:=m+query1gun.Value;
        a:=a+1;//buradaki amacınızı anlayamadım ama tahminimce a:=query1.RecordNo bu işe yarayabilir
        edit3.Text:=floattostr(m/a);
        Value:=trunc(m/a);
        
       End;
if VarName = ma1 then  Value:=query1.RecordNo;
gibi.
ayrıca yapmaya çalıştığınız kayıt no yazdırmak iste bunu rapor içinde #Line veya Line ile yapabiirsiniz.
son olarak yukarıdaki deyimi rapor içinde script olarak yaazabilir veya doğrudan ilgili memo içine
[query.gun] / [Line] gibi birşey de yazabilirsiniz.
TURGUT
Üye
Mesajlar: 54
Kayıt: 27 May 2005 03:19
Konum: ANKARA/ETİMESGUT

Re: fast report değişkene değer atama hatası

Mesaj gönderen TURGUT »

Kod: Tümünü seç

while not query1.Eof do
begin
if (query1btarih.AsDateTime >= strtodate('01.01.2010')) and (query1btarih.AsDateTime <=strtodate('31.01.2010')) then
sanırım kodun bu kısmına dikkat etmediniz 12 ay içinde üsteki döngüyü yapıyorum. Sebebi ise tamir bakım için gelen parçaların ortalama kaç günde çıktığına dair ve bir takım rapor üzerinde hesaplamalar yapan bir program.

a:=a+1 kullanmamın sebebi ise örneğin ocak ayı içersinde gelen mil ve bobinajın sayılarının toplamı.Önerdiğiniz kodu biraz daha açıklarsan daha çok yardımcı olmuş olursunuz:)

Kod: Tümünü seç

while not query1.Eof do
begin
if (query1btarih.AsDateTime >= strtodate('01.01.2010')) and (query1btarih.AsDateTime <=strtodate('31.01.2010')) then
 begin
      if (query1parca.AsString='Mil') or (query1parca.AsString='Mil + Bobinaj') then
      begin
       m:=m+query1gun.Value;
        a:=a+1;
        edit3.Text:=floattostr(m/a);
        frxReport2.Variables.Variables['<m1>']:=trunc(m/a);
        frxReport2.Variables.Variables['ma1']:=a;
      end;
      if (query1parca.AsString='Bobinaj') or (query1parca.AsString='Mil + Bobinaj') then
      begin
       b:=b + query1gun.Value;
        a1:=a1+1;
        edit4.Text:=floattostr(b/a1);
        frxReport2.Variables.Variables['b1']:=b/a1;
        frxReport2.Variables.Variables['ba1']:=a1;
      end;
      if (query1parca.AsString='TBK')  then
      begin
       t:=t + query1gun.Value;
        a2:=a2+1;
        edit5.Text:=floattostr(t/a2);
        frxReport2.Variables.Variables['t1']:=t/a2;
        frxReport2.Variables.Variables['ta1']:=a2;
       end;

   end;
   query1.next;
end;
query1.First;
  m:=0;
a:=0;
b:=0;
t:=0;
a1:=0;
a2:=0;
while not query1.Eof do
begin
   if  (query1btarih.AsDateTime >= strtodate('01.02.2010')) and (query1btarih.AsDateTime <= strtodate ('28.02.2010')) then
     begin
       if (query1parca.AsString='Mil') or (query1parca.AsString='Mil + Bobinaj') then
       begin
       m:=m+query1gun.Value;
        a:=a+1;
        edit6.Text:=floattostr(m/a);
        frxReport2.Variables.Variables['m2']:=m/a;
        frxReport2.Variables.Variables['ma2']:=a;
       end;
...
...
...
...//kodlar 3 işlem içinde 12 ay için tekrarlanıyor
.
TURGUT
Üye
Mesajlar: 54
Kayıt: 27 May 2005 03:19
Konum: ANKARA/ETİMESGUT

Re: fast report değişkene değer atama hatası

Mesaj gönderen TURGUT »

arkadaşlar problemim hala devam ediyor
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: fast report değişkene değer atama hatası

Mesaj gönderen csunguray »

Bence sizin probleminiz değişkene değer atarken oluşmuyor. Memo158 in içerisine nasıl bir formül yazdınız?
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/)
TURGUT
Üye
Mesajlar: 54
Kayıt: 27 May 2005 03:19
Konum: ANKARA/ETİMESGUT

Re: fast report değişkene değer atama hatası

Mesaj gönderen TURGUT »

memo158 de formül yok fastreport üzerinde tanmlanmış değişken. Değeri form üzerinden

Kod: Tümünü seç

frxReport2.Variables.Variables['m1']:=trunc(m/a);
kodu ile alıyor.
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: fast report değişkene değer atama hatası

Mesaj gönderen csunguray »

Memo158 içerisine ne yazdığınızı buraya yazar mısınız? Ayrıca bu tür işlemler için raporun OnGetValue event ını kullanmak daha kolaydır.
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/)
Cevapla