integer value hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

integer value hatası

Mesaj gönderen erdogan_ozkaya »

arkadaşlar aşağıdaki kod ile taksitli şatış yapabiliyorum.

sorunum 100 tl veya 2000 tl gibi yuvarlak rakamları bölüyor ve işliyor fakat 100,5 tl veya 15,5 tl gibi rakamları girdiğimde "valid integer value" hatası veriyor

teşekkürler

Kod: Tümünü seç

procedure TBORC_ALACAK_FISI.SpeedButton13Click(Sender: TObject);
var
      sayi1,sayi2,sonuc:integer;
      i : Integer;
      birim_taksit,toplam:double;
      taksit_sayi:integer;
      belgem:string;
      datem:tdate;
begin
      if (NxCheckBox1.Checked=True) and (KASA_KART_TEXT.Text='')
      then ShowMessage('            Lütfen Kasa Hesabı Giriniz            ') else

      if CARI_KOD_TEXT.Text=''
      then ShowMessage('          Lütfen Cari Kart Seçiniz          ') else

      if NxButtonEdit1.Text=''
      then ShowMessage('          Lütfen Muhasebe Hesabı Seçiniz          ') else

   //   if NxNumberEdit1.Value<=1
  //  then ShowMessage('          Lütfen Ana Para Miktarını Giriniz          ') else

      if DBLookupComboBox1.Text=''
      then ShowMessage('          Lütfen Para Birimi Seçiniz          ') else

      if NxNumberEdit2.Text=''
      then ShowMessage('          Vade Oranı Boş Olamaz          ') else

begin
      TabSheet1.Enabled:=False;
      belgem:=edit3.text;
      if    StrToIntDef (RzNumericEdit1.text,0) <1 then begin
      ShowMessage('          Ödeme Sayısı Hatalı Lütfen Kontrol Ediniz          ');
      RzNumericEdit1.SetFocus;
      exit;
      end;
      toplam:= 0;
      birim_taksit:= strtofloat(inttostr(strtoint(NxNumberEdit1.text) div strtoint(RzNumericEdit1.text)));  //taksit sayısı kadar tam taksit sayısı
      taksit_sayi:=strtoint(RzNumericEdit1.text);
      datem:=DateTimePicker1.date;
      for i:= 1 to ( taksit_sayi-1 ) do
begin
      Cari_Borc_Tablosu_DB.insert; 
      Cari_Borc_Tablosu_DB.FieldByName('Cari_Kart_ID').AsString:=CARI_KOD_TEXT.Text;
      Cari_Borc_Tablosu_DB.FieldByName('Calisilan_Firma_ID').AsString:=Ana_Pencere.DBEdit6.Text;
      Cari_Borc_Tablosu_DB.FieldByName('Ekleyen').AsString:=Ana_Pencere.DBEdit11.Text;
      Cari_Borc_Tablosu_DB.FieldByName('Tsksit_Sayisi').Value:=RzNumericEdit1.Value;
      Cari_Borc_Tablosu_DB.FieldByName('Aciklama').AsString:=Edit2.Text;


      Cari_Borc_Tablosu_DB.FieldByName('Fis_Tipi').AsString:=Edit4.Text;

       Cari_Borc_Tablosu_DB.FieldByName('Odeme_Sayisi').Value:=i;
      Cari_Borc_Tablosu_DB.FieldByName('Odeme').Value:= birim_taksit;
      Cari_Borc_Tablosu_DB.FieldByName('Vade_Farki').Value:=NxNumberEdit2.Text;

      Cari_Borc_Tablosu_DB.FieldByName('Toplam_Faiz').Value:=floattostr(strtofloat(Cari_Borc_Tablosu_DB.fieldbyname('Odeme').Value)*StrTofloat(Cari_Borc_Tablosu_DB.fieldbyname('Vade_farki').Value));

      if (Edit4.Text='AlacakFisi') then
      Cari_Borc_Tablosu_DB.FieldByName('Fis_Genel_Toplami_Alacak').Value:=floattostr(strtofloat(Cari_Borc_Tablosu_DB.fieldbyname('Odeme').Value)+StrTofloat(Cari_Borc_Tablosu_DB.fieldbyname('Toplam_Faiz').Value) );

      if (Edit4.Text='BorcFisi')  then
      Cari_Borc_Tablosu_DB.FieldByName('Fis_Genel_Toplami_Borc').Value:=floattostr(strtofloat(Cari_Borc_Tablosu_DB.fieldbyname('Odeme').Value)+StrTofloat(Cari_Borc_Tablosu_DB.fieldbyname('Toplam_Faiz').Value) );



      Cari_Borc_Tablosu_DB.FieldByName('Durumu').AsString:='Ödenmedi';
      if   NxCheckBox1.Checked=True then
      Cari_Borc_Tablosu_DB.FieldByName('Durumu').AsString:='Ödendi';

      Cari_Borc_Tablosu_DB.FieldByName('Kapali_Acik').AsString:='False';
      if   NxCheckBox1.Checked=True then
      Cari_Borc_Tablosu_DB.FieldByName('Kapali_Acik').AsString:='True';


      Cari_Borc_Tablosu_DB.FieldByName('Muhasebe_Hesabi').AsString:=NxButtonEdit1.Text;
      Cari_Borc_Tablosu_DB.FieldByName('Kasa_Hesabi').AsString:=KASA_KART_TEXT.Text;

      Cari_Borc_Tablosu_DB.FieldByName('Para_Birimi').AsString:=DBLookupComboBox1.Text;
      Cari_Borc_Tablosu_DB.FieldByName('Para_Birimi_ID').AsString:= DBEdit1.Text;

      Cari_Borc_Tablosu_DB.FieldByName('Vade_Tarihi').Value:=IncMonth(Datem);   // taksit tarihini bir ay atlat
      Cari_Borc_Tablosu_DB.FieldByName('Fis_No').AsString:=belgem;
      Cari_Borc_Tablosu_DB.post;

      toplam:= toplam+birim_taksit; //  dağıtılan taksit toplamı
      datem:= IncMonth(Datem);
end;
      Cari_Borc_Tablosu_DB.insert;

      Cari_Borc_Tablosu_DB.FieldByName('Cari_Kart_ID').AsString:=CARI_KOD_TEXT.Text;
      Cari_Borc_Tablosu_DB.FieldByName('Calisilan_Firma_ID').AsString:=Ana_Pencere.DBEdit6.Text;
      Cari_Borc_Tablosu_DB.FieldByName('Ekleyen').AsString:=Ana_Pencere.DBEdit11.Text; 
      Cari_Borc_Tablosu_DB.FieldByName('Tsksit_Sayisi').Value:=RzNumericEdit1.Value;
      Cari_Borc_Tablosu_DB.FieldByName('Aciklama').AsString:=Edit2.Text;
      Cari_Borc_Tablosu_DB.FieldByName('Fis_Tipi').AsString:=Edit4.Text;
      Cari_Borc_Tablosu_DB.FieldByName('Odeme_Sayisi').Value:=taksit_sayi;
      Cari_Borc_Tablosu_DB.FieldByName('Odeme').Value:= strtoint(NxNumberEdit1.text)-toplam;
      Cari_Borc_Tablosu_DB.FieldByName('Vade_farki').Value:=NxNumberEdit2.Text;
      Cari_Borc_Tablosu_DB.FieldByName('Toplam_Faiz').Value:=floattostr(strtofloat(Cari_Borc_Tablosu_DB.fieldbyname('Odeme').Value)*StrTofloat(Cari_Borc_Tablosu_DB.fieldbyname('Vade_farki').Value) );

      if (Edit4.Text='AlacakFisi') then
      Cari_Borc_Tablosu_DB.FieldByName('Fis_Genel_Toplami_Alacak').Value:=floattostr(strtofloat(Cari_Borc_Tablosu_DB.fieldbyname('Odeme').Value)+StrTofloat(Cari_Borc_Tablosu_DB.fieldbyname('Toplam_Faiz').Value) );

      if (Edit4.Text='BorcFisi')  then
      Cari_Borc_Tablosu_DB.FieldByName('Fis_Genel_Toplami_Borc').Value:=floattostr(strtofloat(Cari_Borc_Tablosu_DB.fieldbyname('Odeme').Value)+StrTofloat(Cari_Borc_Tablosu_DB.fieldbyname('Toplam_Faiz').Value) );


      Cari_Borc_Tablosu_DB.FieldByName('Muhasebe_Hesabi').AsString:=NxButtonEdit1.Text;
      Cari_Borc_Tablosu_DB.FieldByName('Kasa_Hesabi').AsString:=KASA_KART_TEXT.Text;

      Cari_Borc_Tablosu_DB.FieldByName('Durumu').AsString:='Ödenmedi';
      if   NxCheckBox1.Checked=True then
      Cari_Borc_Tablosu_DB.FieldByName('Durumu').AsString:='Ödendi';

      Cari_Borc_Tablosu_DB.FieldByName('Kapali_Acik').AsString:='False';
      if   NxCheckBox1.Checked=True then
      Cari_Borc_Tablosu_DB.FieldByName('Kapali_Acik').AsString:='True';


      Cari_Borc_Tablosu_DB.FieldByName('Para_Birimi').AsString:=DBLookupComboBox1.Text;
      Cari_Borc_Tablosu_DB.FieldByName('Para_Birimi_ID').AsString:= DBEdit1.Text;

      Cari_Borc_Tablosu_DB.FieldByName('Vade_Tarihi').Value:=IncMonth(Datem); // son taksit tarihini bir ay atlat
      Cari_Borc_Tablosu_DB.FieldByName('Fis_No').AsString:=belgem;

      Cari_Borc_Tablosu_DB.post;
Kullanıcı avatarı
muratmutlu
Üye
Mesajlar: 57
Kayıt: 02 Tem 2005 02:44
Konum: Antalya

Re: integer value hatası

Mesaj gönderen muratmutlu »

Merhaba,

100,5 tl veya 15,5 tl gibi rakamlar interger değiller. Kodunu çok fazla incelemedim ancak :

Kod: Tümünü seç

Cari_Borc_Tablosu_DB.FieldByName('Odeme').Value:= strtoint(NxNumberEdit1.text)-toplam;
satırından kaynaklanıyor olabilir. Bunun yanısıra veritabanındaki bir alanı sen integer olarak tanımlamış olup ona float değerler giriyor olabilirsin. Bunları kontrol et istersen önce. Hangi satırda hata verdiğini bulmak için debug yapmanı tavsiye ederim.
Cevapla