bir döngü istiyorum
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- birtekocak
- Üye
- Mesajlar: 8
- Kayıt: 24 Mar 2004 10:16
bir döngü istiyorum
arkadaşlar table kayıtlı demirbaşlarım için giriş tarihlerini dikkate alarak
1971 yılından bu güne kadar tek tek tüm demirbaşların amortisman değerlerini hesaplayacak bir döngü istiyorum
her demirbaşın kendi giriş tarihi var ve her yılın kendine göre bir artış oranı var
1971 yılından bu güne kadar tek tek tüm demirbaşların amortisman değerlerini hesaplayacak bir döngü istiyorum
her demirbaşın kendi giriş tarihi var ve her yılın kendine göre bir artış oranı var
S.A
S.A
Arkadasım
Bu Durumda Sanırım Sen Gölü Mayalamak istiyorsun..
Bence Biraz Daha Ayrıntılı Bilgi Verirsen Programın Hakkında Table hakkında çok iyi Olur..
Hayırlı Gunler
Arkadasım

Bence Biraz Daha Ayrıntılı Bilgi Verirsen Programın Hakkında Table hakkında çok iyi Olur..
Hayırlı Gunler
Merhaba,
evet detaylar eksik ama şöyle genel birşey söyleyebilirim.
Bir Query ile 1971'den büyük kayıtları seçin.
SELECT * FROM TABLO_İSMİ
WHERE TARIH>='01.01.1971'
daha sonra bir döngü ile kayıtları işleme tabi tutun. Mesela Query1 ise,
Kolay gelsin.
evet detaylar eksik ama şöyle genel birşey söyleyebilirim.
Bir Query ile 1971'den büyük kayıtları seçin.
SELECT * FROM TABLO_İSMİ
WHERE TARIH>='01.01.1971'
daha sonra bir döngü ile kayıtları işleme tabi tutun. Mesela Query1 ise,
Kod: Tümünü seç
Query1.First;
while not Query1.Eof do
begin
//burda hesaplama işlemleri yapılıyor
Query1.Next;
end;
- birtekocak
- Üye
- Mesajlar: 8
- Kayıt: 24 Mar 2004 10:16
kusura bakmayın
arkadaşlar kusura bakmayın daha fazla detaylandırıp canınızı sıkmak istemedim.
işin aslı şu demirbaşların tutuluduğu bir table ım var
bu table da demirbaş no, ad giriş tarihi , giriş bedeli gibi bilgiler mevcut
1971 den bu yana her yıl bu demirbaşların giriş bedelleri oyılın artış oarnı ile çarpılıp yeniden hesaplanıyor ve bunlar her yıl yenileniyor döngü istiyorum derken bu kastedmiştim
demirbaş döngüye girecek ilg giriş tarihi kontrol edilecek ve o yıldan hesap edilmeye başlanacak tarih bir yıl arttırılıp hesaplama işlemi tekrar yapılacak
işin aslı şu demirbaşların tutuluduğu bir table ım var
bu table da demirbaş no, ad giriş tarihi , giriş bedeli gibi bilgiler mevcut
1971 den bu yana her yıl bu demirbaşların giriş bedelleri oyılın artış oarnı ile çarpılıp yeniden hesaplanıyor ve bunlar her yıl yenileniyor döngü istiyorum derken bu kastedmiştim
demirbaş döngüye girecek ilg giriş tarihi kontrol edilecek ve o yıldan hesap edilmeye başlanacak tarih bir yıl arttırılıp hesaplama işlemi tekrar yapılacak
Merhaba ne güzel anlatıyorsun!!! Döngü örneğide verilmiş. Algoritmanı Kod lara dök anlattığın şekilde döngü kur if lerle şartları karşılaştır. Takıldığın yerlerde bu formun altına yaz.demirbaş döngüye girecek ilg giriş tarihi kontrol edilecek ve o yıldan hesap edilmeye başlanacak tarih bir yıl arttırılıp hesaplama işlemi tekrar yapılacak
Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Canı sıkmak dersen ozaman soruna yukarıdaki kadar cevap alırsın
Aksine can sıkacaksınki millet bi an önce kurtulmak için hemen ve detaylı bir şekilde cevap yazsınlar.
Bu yeniden değerlendirme 3 yıllık olmıyacakmı ? yoksa ilk maliyet sıfırlana kadarmı olacak ? eğer 3 yıl olacaksa table a 3 field daha ekle, ve sonraki yılların değerlerini gir ve hesaplat, yada bu sonuçlarıda field ekleyip table a yaz. Eğer maliyet sıfırlana kadarsa, ozaman detail table kullan, detail de her yılın bilgilerini bir kayıt olarak tut. bunun döngüsünüde
Kolay gele

Bu yeniden değerlendirme 3 yıllık olmıyacakmı ? yoksa ilk maliyet sıfırlana kadarmı olacak ? eğer 3 yıl olacaksa table a 3 field daha ekle, ve sonraki yılların değerlerini gir ve hesaplat, yada bu sonuçlarıda field ekleyip table a yaz. Eğer maliyet sıfırlana kadarsa, ozaman detail table kullan, detail de her yılın bilgilerini bir kayıt olarak tut. bunun döngüsünüde
Kod: Tümünü seç
while not Table1.EOF do begin
// yazanağın kod
Table1.Next;
end;
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 !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
- birtekocak
- Üye
- Mesajlar: 8
- Kayıt: 24 Mar 2004 10:16
nerde yanlış yapıyorum
procedure TForm1.Button1Click(Sender: TObject);
var
oran,bolum:integer;
begin
oran:=114290;
bolum:=100;
Query1.First;
while not Query1.Eof do
begin
form1.table1dem_amort:=form1.table1dem_fiat * oran / bolum;//burda hesaplama işlemleri yapılıyor;
Query1.Next;
end;
end;
burda table daki alnalar üzerinde işlem yapmak istiyorum
bilmediğim bir şeyler var nedir onlar acaba?
var
oran,bolum:integer;
begin
oran:=114290;
bolum:=100;
Query1.First;
while not Query1.Eof do
begin
form1.table1dem_amort:=form1.table1dem_fiat * oran / bolum;//burda hesaplama işlemleri yapılıyor;
Query1.Next;
end;
end;
burda table daki alnalar üzerinde işlem yapmak istiyorum
bilmediğim bir şeyler var nedir onlar acaba?
- birtekocak
- Üye
- Mesajlar: 8
- Kayıt: 24 Mar 2004 10:16
evet
evet yıllık artış oranları birbirinden farklı ve demirbaşın değer artışı ile amortismanın değer artışı birbirini yakaladığı yerde, her yeni yıl için amortisman hesabı yapılmıyor. ayrıca 3 yıllık değil de bu işlem demirbaşın üniteye girişinden hurda olup çıkışına kadar devam ediyor
ozaman master-detail kullan detail de her yıl bilgilerini sakla.
Kolay gele
bu temsili kod değil ise çalışmaz, yazılım hatası varform1.table1dem_amort:=form1.table1dem_fiat * oran / bolum;//burda hesaplama işlemleri
Kod: Tümünü seç
form1.table1.Edit;//Yada form1.table1.Insert
form1.table1.fieldbyname('dem_amort').asfloat:=form1.table1.fieldbyname('dem_fiat').asfloat * oran / bolum;//burda hesaplama işlemleri
form1.table1.Post;
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 !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
- birtekocak
- Üye
- Mesajlar: 8
- Kayıt: 24 Mar 2004 10:16
bu kodlarla tek satır işlem görüyor
vermiş olduğunuz kodlarla işlem yaptığımda o an seçili kayıtın değeri hesaplanıyor bu hesaplamayı hepsine birde nasıl uygularım şimdiden sağolun
- birtekocak
- Üye
- Mesajlar: 8
- Kayıt: 24 Mar 2004 10:16
?hallettim ama?
merhaba
sorunu hallettim ama şimdi de
silme ve değer atama işlemlerinde
'database not edit or insert ' diyor.
kod aşağıda olduğu gibi.
yardımlarını bekliyorum sağolun
procedure TForm1.Button1Click(Sender: TObject);
var
oran,bolum:integer;
i:longint;
begin
oran:=114290;
bolum:=100;
Query1.First;
for i:=1 to form1.table1.RecordCount do
begin
form1.Table1.Open;
form1.table1.Edit;//Yada form1.table1.Insert
form1.table1.FieldByName('dem_amort').AsFloat:=form1.table1.fieldbyname('dem_fiat').asfloat * oran / bolum;
form1.table1.Next;
end;
form1.Table1.Post;
form1.Table1.Close;
showmessage('bitti');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
j:longint;
begin
Query1.First;
for j:=1 to form1.table1.RecordCount do
begin
form1.Table1.Open;
form1.table1.Edit;//Yada form1.table1.Insert
form1.table1.FieldByName('dem_amort').AsFloat:=0;
form1.table1.Next;
end;
form1.Table1.Post;
form1.Table1.Close;
showmessage('bitti');
end;
sorunu hallettim ama şimdi de
silme ve değer atama işlemlerinde
'database not edit or insert ' diyor.
kod aşağıda olduğu gibi.
yardımlarını bekliyorum sağolun
procedure TForm1.Button1Click(Sender: TObject);
var
oran,bolum:integer;
i:longint;
begin
oran:=114290;
bolum:=100;
Query1.First;
for i:=1 to form1.table1.RecordCount do
begin
form1.Table1.Open;
form1.table1.Edit;//Yada form1.table1.Insert
form1.table1.FieldByName('dem_amort').AsFloat:=form1.table1.fieldbyname('dem_fiat').asfloat * oran / bolum;
form1.table1.Next;
end;
form1.Table1.Post;
form1.Table1.Close;
showmessage('bitti');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
j:longint;
begin
Query1.First;
for j:=1 to form1.table1.RecordCount do
begin
form1.Table1.Open;
form1.table1.Edit;//Yada form1.table1.Insert
form1.table1.FieldByName('dem_amort').AsFloat:=0;
form1.table1.Next;
end;
form1.Table1.Post;
form1.Table1.Close;
showmessage('bitti');
end;
- birtekocak
- Üye
- Mesajlar: 8
- Kayıt: 24 Mar 2004 10:16
her şey sağolun
arkadaşlar sağ olun her şey için
hepsi tamam
takıldığım yer olursa sizi rahatsız etmeye devam edecem
hepsi tamam
takıldığım yer olursa sizi rahatsız etmeye devam edecem
orda bi dur bakalım. Bu foruma borcun var, nedemek
500 kerede söyledim, burda cevap aldıysan işine yarasın yaramasın, her cevap karşılığı 3 cevap vermek zorundasın.
Mutlakada bildiğin bir şey çıkacaktır
burdan benim anladığım ben işimi hallettim ne haliniz varsa görün.takıldığım yer olursa sizi rahatsız etmeye devam edecem
500 kerede söyledim, burda cevap aldıysan işine yarasın yaramasın, her cevap karşılığı 3 cevap vermek zorundasın.
Mutlakada bildiğin bir şey çıkacaktır
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 !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!