Dbgridden Dbgride Veri Aktarımında Hatalı Hesaplama?

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
hedefbusiness

Dbgridden Dbgride Veri Aktarımında Hatalı Hesaplama?

Mesaj gönderen hedefbusiness »

Fatura icindeki Stok hareket gridindeki verilerin Kdv matrahlarını Kdv gridine aktarmak istiyorum

** ilk işlem Stokhareket gridini bastan sona tarıyor
** 2. işlem kdv gridinde aynı kdv li kayıt varsa üstüne ekliyor yoksa yeni satır açıyor
*** Hata kdv grdinin ikinci satırından sonra kdvmatrahını hatalı hesaplıyor

Döngü şöyle:

var
a,b,g,f,c,e:integer;
d:boolean;
begin
Begin
datamodule21.IBTable16.First;
f:=strtoint(format('%2d',[yenigrid2(wwdbgrid2).RowCount-1]));
edit2.Text:=inttostr(f);
for g:=1 to f do
Begin
c:=strtoint(format('%2d',[yenigrid1(wwdbgrid1).RowCount-1]));
edit1.Text:=inttostr(c);
for e:=1 to c do
Begin
d:=datamodule21.ibtable25.Locate('KDV',datamodule21.ibtable16kdvoran.text,[lopartialkey]);
if d=true then
Begin
datamodule21.ibtable25.edit;
datamodule21.IBTable25kdvmatrah.Text:=floattostr((datamodule21.IBTable16tutar.Value)+(datamodule21.IBTable25kdvmatrah.Value));
datamodule21.ibtable25kdvtutari.text:=floattostr(strtofloat(datamodule21.ibtable25kdvmatrah.text)*strtofloat(datamodule21.ibtable25kdv.text)/100);
datamodule21.IBTable25.Post;
end
//d:=datamodule21.ibtable25.Locate('KDV',datamodule21.ibtable16kdvoran.text,[lopartialkey]);
else if d=false then
Begin
datamodule21.ibtable25.append;
datamodule21.ibtable25kdv.text:=datamodule21.ibtable16kdvoran.text;
datamodule21.ibtable25kdvmatrah.text:='0';
datamodule21.ibtable25kdvmatrah.text:=floattostr((strtofloat(datamodule21.ibtable16tutar.text)));
datamodule21.ibtable25kdvtutari.text:='0';
datamodule21.ibtable25kdvtutari.text:=floattostr(strtofloat(datamodule21.ibtable25kdvmatrah.text)*strtofloat(datamodule21.ibtable25kdv.text)/100);
datamodule21.IBTable25.Post;
end;
datamodule21.IBTable25.Next;
end;
datamodule21.IBTable16.Next;
end;
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

hocam neyin ne olduğu anlaşılmıyor.

* Anlamlı isimler kullanmalısın. Table3 hiç bir anlam ifade etmezken TblStokHareket ismi çok şey ifade ediyor.

* Boşluklar hiç belli değil. Hangi kod hangi blokta??? Sitede bu konuda detaylı bir makale var, incelemeni tavsiye ederim.

Soruna gelince Database'de işlemler DBGrid, DBEdit vs. üstünden yapılmaz :!: İlgili dataset'le işini görürsün. Yani Stok Hareketle ilgili bir işlem yapacaksan, gidip Stok Hareket'in datasetine (table, query, dataset vs.) müracaat edersin.

Bence adım adım çalışıtırp bir bak, daha da iyisi SP yap bunu :)

Kolay gelsin.
Cevapla