döngü çalışmıyor

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
danaci
Üye
Mesajlar: 178
Kayıt: 24 May 2005 01:45

döngü çalışmıyor

Mesaj gönderen danaci »

arkadaşlar merhaba,
d6 kullanıyorum .Gunluk_maliyet ve ek_gostergeler tablom var
döngü olarak gunluk_maliyet tablomdaki personelin ek_gostergesine karşılık olarak, sorgu kullanarak ek_gosterge tablosundan ilgili ek gösterge karşılığını okutarak bazı hesaplamalar yapmak istiyorum. Bu nedenle aşağıdaki kodu yazdım.
Ancak bu kod gunluk_maliyet tablosundaki ilk kayıt için çalışıyor. Sonraki kayıtlar işlem yapmıyor. Acaba nerede mantık hatası yapıyorum?

dm1.gunluk_maliyet_table.First;
while not dm1.gunluk_maliyet_table.Eof do
begin
dm1.genel_sorgu.Close;
dm1.genel_sorgu.SQL.Clear;
dm1.genel_sorgu.SQL.Add('select katki_bedeli from ek_gostergeler where ek_gosterge=:ek_gosterge');
dm1.genel_sorgu.Prepare;
dm1.genel_sorgu.ParamByName('ek_gosterge').AsInteger:=dm1.gunluk_maliyet_tableek_gosterge.Value;
dm1.genel_sorgu.Open;
dm1.gunluk_maliyet_table.edit;
dm1.gunluk_maliyet_tablemisafir_bedeli.Value:=
dm1.genel_sorgu.fieldByName('katki_bedeli').AsFloat * 15 / 32 ;
dm1.gunluk_maliyet_table.post;
end;
dm1.gunluk_maliyet_table.Next;


Ancak koddan aşağıdaki bölümü çıkarınca döngü tüm kayıtları tarıyor. Bu defa ise hesaplama yapamamış oluyorum.
dm1.gunluk_maliyet_table.edit;
dm1.gunluk_maliyet_tablemisafir_bedeli.Value:=
dm1.genel_sorgu.fieldByName('katki_bedeli').AsFloat * 15 / 32 ;
dm1.gunluk_maliyet_table.post;
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7588
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: döngü çalışmıyor

Mesaj gönderen mussimsek »

danaci yazdı:...
dm1.gunluk_maliyet_table.post;
end;
dm1.gunluk_maliyet_table.Next;
...
Merhaba,

Sanırım .next'i while bloğuna alırsan işini görür. Yani :

Kod: Tümünü seç

  dm1.gunluk_maliyet_table.Next;
end;
Aslında diğer türlü de kayıtları taramıyordur ama değişiklik yapmadığınız için anlaşılmıyordur. Bu şekilde sadece ilk kayıta bakar.

Kolay gelsin.
danaci
Üye
Mesajlar: 178
Kayıt: 24 May 2005 01:45

Re: döngü çalışmıyor

Mesaj gönderen danaci »

Mustafa hocam,
cevabınız için tşk ederim. "Sanırım .next'i while bloğuna alırsan işini görür. " demişsiniz. Ben kodu foruma yazarken hatalı yazmışım.Yani table.next begin.. end bloğu içerisinde.
Fakat mevcut verileri aynı blok içerisinde farklı bir table'a post edince döngü sorunsuz çalışıyor.Şöyleki
gecici adında bir table oluşturdum.

while not dm1.gunluk_maliyet_table.Eof do
begin
dm1.genel_sorgu.Close;
dm1.genel_sorgu.SQL.Clear;
dm1.genel_sorgu.SQL.Add('select katki_bedeli from ek_gostergeler where ek_gosterge=:ek_gosterge');
dm1.genel_sorgu.Prepare;
dm1.genel_sorgu. ParamByName('ek_gosterge').AsInteger:=dm1.gunluk_maliyet_tableek_gosterge.Value;
dm1.genel_sorgu.Open;

dm1.gecici_table.Append;
dm1.gecici_tableyemek.Value:=
((dm1.genel_sorgu.fieldByName('katki_bedeli').AsFloat * yemek_maliyeti_tablekalan)
/ katki_carpani) ;

dm1.gecici_table.Post;



dm1.gunluk_maliyet_table.Next;

end;
Aradaki fark şu. dm1.gunluk_maliyet table edit-post ile güncelleme yaparken çalışmıyor ,yeni oluşturduğum gecici table'a append-post ile kayıt eklerken çalışıyor. Asıl sıkıntı burada.
iyi çalışmalar
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: döngü çalışmıyor

Mesaj gönderen yusuf simsek »

dm1.gunluk_maliyet sorgusunu paylaşabilir misiniz!
Sorguda JOIN ile başka bir tabloyla bağlantı olabilir mi acaba?
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Cevapla