Taksitlendirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
sinancaylak
Üye
Mesajlar: 151
Kayıt: 30 Oca 2004 09:16
Konum: Manisa

Mesaj gönderen sinancaylak »

Ayrıca veri tabanı olarak Paradox kulanıyorum alanlarım ise Numeric
Kullanıcı avatarı
derya
Kıdemli Üye
Mesajlar: 68
Kayıt: 16 May 2004 02:43
Konum: Almanya/Bonn
İletişim:

Mesaj gönderen derya »

Round kullansan ne olur?

Kod: Tümünü seç

query1.FieldByName('TAKSITUCRET').AsInteger := round(query1.FieldByName('TOPTUTAR').AsInteger / query1.FieldByName('TAKSITSAY').Asinteger);
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

ben programımda şöyle bir yöntem kullandım belki işine yara
:D

Kod: Tümünü seç

ROCEDURE TTAKSITF.SpeedButton2Click(Sender: TObject);
VAR
  SNO, A: INTEGER;
  TARIH: TDATE;
  YIL, AY, GUN: WORD;
BEGIN
  IF Q_BASLIKKALAN.Value = 0 THEN
    BEGIN
      APPLICATION.MessageBox('Taksit Tutarı Yok', 'Bilgi', 0 + 64);
    END
  ELSE
    BEGIN
      IF Q_BASLIKILKODEMETARIHI.Value = 0 THEN
        BEGIN
          APPLICATION.MessageBox('İlk Ödeme Tarihi Yok', 'Tarih', 0 + 64);
        END
      ELSE
        BEGIN
          TARIH := Q_BASLIKILKODEMETARIHI.Value;
          DecodeDate(Q_BASLIKILKODEMETARIHI.Value, YIL, AY, GUN);
          FOR A := 1 TO SATIR.RecordCount DO
            BEGIN
              SATIR.Delete;
            END;
          // TAKSİT HESAPLANIYOR
          SATIR.Append;
          SATIRFIRMAKOD.Value := Q_BASLIKFIRMAKOD.Value;
          SATIRSATISNO.Value := Q_BASLIKSATISNO.Value;
          SATIRTAKSITNO.Value := Q_BASLIKTAKSITNO.Value;
          SATIRODEMETARIHI.Value := TARIH;
          SATIRMIKTAR.Value := Q_BASLIKKALAN.Value / Q_BASLIKTAKSITSAYISI.Value;
          SATIRTAKSITSNO.Value := 1;
          SATIR.Post;

          SNO := 1;
          FOR A := 1 TO STRTOINT(DBEDIT8.Text) - 1 DO
            BEGIN
              SNO := SNO + 1;
              TARIH := TARIH + DaysInMonth(TARIH);
              SATIR.Append;
              SATIRFIRMAKOD.Value := Q_BASLIKFIRMAKOD.Value;
              SATIRSATISNO.Value := Q_BASLIKSATISNO.Value;
              SATIRTAKSITNO.Value := Q_BASLIKTAKSITNO.Value;
              SATIRODEMETARIHI.Value := TARIH;
              SATIRTAKSITSNO.Value := SNO;
              SATIRMIKTAR.Value := Q_BASLIKKALAN.Value /
                Q_BASLIKTAKSITSAYISI.Value;
              SATIR.Post;
            END;
        END;
    END;
END;

programımdakini olduğu gibi kopyaladım

bunu kullanan yerlerim var ..
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Benim bu table insertlerde hep kafam karışır zaten :D
Bi de şöyle denermisin ama bu sefer query ile

Kod: Tümünü seç

query1.Append; 
query1TOPTUTAR.asFloat := strtofloat(edit1.text); 
query1TAKSITSAY.asFloat := strtofloat(edit2.text); 
query1TAKSITUCRET'.asFloat := strtofloat(edit1.text) / strtofloat(edit2.text); 
query1.Post; 
query1.close; 
query1.open; 
sinancaylak
Üye
Mesajlar: 151
Kayıt: 30 Oca 2004 09:16
Konum: Manisa

Mesaj gönderen sinancaylak »

Kusura bakmayın uzun bir zamandır foruma rahatsızlığım nedeni ile mesaj atamadım söyledilerini yaptm ama sonuç alamadm bende Söyle birsey yaptm

Kod: Tümünü seç

Query1.Close;
Query1.TAKSITTUTAR.Value:=(TAKSITSAY / TOPLAMTUTAR);
Query1.Open; 
Ben Şimdi Bunu İsteiğim Gibi böldürebiliyorum ama Gridde Sadece Tek bir Kayıt Görünüyor yani taksitlendirilmiş fiyatı gösteriyor. Ben Giride 15.000.000 3 Taksite böldüğümüz zaman

Taksit 1 5.000.000

Taksit 2 5.000.000

Taksit 3 5.000.000

Görülmesini istiyorum Bunu için Bu Bölünmüş Sayıyı Tabloya Taksit Sayısı Kadar Yazdırmak mı lazım.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

tabiki evet. Master detail mantığı budur. habirde bilgisayar, bir makinadır. aslında hiç bir şey bilmez, hatta 4 işlemi bile, bildiği tek şey toplamadır, diğerlerinide toplamanın dağılma özelliğini kullanarak yapar.(Hocam ın kulakları çınlasın)
Detail tablonda taksit bilgilerini saklamalısın tutarı vadesi ödendi/ödenmedi vs gerekli bilgileri.

yukarıda dosyaya eklemeyle ilgili örneklerde dikkatimi çeken, atama işleminden sonra Append yada insert edilmiş, doğal olarakta readonly hatası alınmış.
sıralama şöyle olmalıydı Open , Insert yada Append , Post , Close
tabi bu read only hatası sadece bundan kaynaklanır denemez

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
sychorax
Üye
Mesajlar: 206
Kayıt: 20 May 2004 04:29

Mesaj gönderen sychorax »

kusura bakma burda delphi yok kodları deneyemedim.Eğer hata verirse haber verirsin.

Kod: Tümünü seç

var
ali:real;
veli:real;
deli:real;
seli:real;
begin
ali:=table1.fieldbyname('fiyat').asfloat
veli:=table1.fieldbyname('taksitsayisi').asfloat;
table2.first;
deli:=ali/veli;
seli:=0;
for seli:=0 to veli do begin
table2.append;
table2.fieldbyname('taksittutari').asfloat:=deli;
table2.post;
end;
[/code]
Cevapla