Dbgridden Dbgride Veri Aktarımında Hatalı Hesaplama?
hedefbusiness29.03.2005 - 10:26:49
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;
 
mussimsek29.03.2005 - 10:43:41
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 Exclaim İ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.
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
1998-2006 www.delphiturkiye.com