6 ay arayla takistlendirme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
6 ay arayla takistlendirme
slm herkese iyi çalışmalar. taksitlendirmeyi yapabiliyorum ama taksitler aylık olamayacak yani birer ay arayla değil 6 ay arayla olacak onu nasıl yapabilirim. teşekkürler
Re: 6 ay arayla takistlendirme
Sorduğun soru net değil. Sorun belirli bir tarihe 6 ay nasıl eklenir ise Uses'a dateutils ekledikten sonra kullanacağın fonksiyon IncMonth(); fonksiyonudur.
Kod: Tümünü seç
Var
tarih : tDate;
begin
tarih := IncMonth( date, 6 );
// tarih içinde bugüne 6 ay eklenmiş hali var.
end;
Re: 6 ay arayla takistlendirme
slm. iyi çalışmalar. ilgine teşekkürederim. istediğim bu ama eksik. verdiğiniz kod belirli tarihe 6 ay ekliyor ama bunu istediğim kadar örneğin 10 defa tekrarlamak.
20.11.2010 1. taksit
20.05.2011 2. taksit
20.11.2011 3. taksit
20.05.2012 3. taksit
20.11.2012 4. taksit
20.05.2013 5. taksit
20.11.2013 6. taksit
..............
...............
var
i:integer;
bas_tar:TDate;
begin
bas_tar:=dm.SATISTARIH.Value+30;
for i:=1 to 10 do
begin
dm.BAKIM.Append;
DM.BAKIMTARIH.AsString:=DATETOSTR(incmonth(bas_tar,6));
DM.BAKIM.Post;
i nereye yazılacak
20.11.2010 1. taksit
20.05.2011 2. taksit
20.11.2011 3. taksit
20.05.2012 3. taksit
20.11.2012 4. taksit
20.05.2013 5. taksit
20.11.2013 6. taksit
..............
...............
var
i:integer;
bas_tar:TDate;
begin
bas_tar:=dm.SATISTARIH.Value+30;
for i:=1 to 10 do
begin
dm.BAKIM.Append;
DM.BAKIMTARIH.AsString:=DATETOSTR(incmonth(bas_tar,6));
DM.BAKIM.Post;
i nereye yazılacak
Re: 6 ay arayla takistlendirme
For döngüsünün içerisinde illa ki "i" değişkeni kullanmak zorunda değilsin.
Şeklinde kullanabilirsiniz.
Bu kod ile 10 kere DM.BAKIMTARIH değişkenini 6 ay artırmak yerine bir kere 60 ay artırabilirsiniz. Ama eğer ki her taksit zamanını bir şekilde kullanıcıya göstermek istiyorsanız bu şekilde yapamazsınız sanıyorum.
Kod: Tümünü seç
for i:=1 to 10 do
begin
incmonth(date,6);
end;
Kod: Tümünü seç
var
i:integer;
bas_tar:TDate;
begin
bas_tar:=dm.SATISTARIH.Value+30;
for i:=1 to 10 do
begin
dm.BAKIM.Append;
DM.BAKIMTARIH.AsString:=DATETOSTR(incmonth(bas_tar,6));
DM.BAKIM.Post;
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
'Yükseldikçe küçülen bir uçurtma..'
Re: 6 ay arayla takistlendirme
i değişkeni senin kaçıncı taksit olduğunu belirttiğine göre bunu veritabanında kullancaksın. aşağıdaki gibi yani.
Kod: Tümünü seç
var
i:integer;
bas_tar:TDate;
begin
bas_tar:=dm.SATISTARIH.Value+30;
for i:=1 to 10 do
begin
dm.BAKIM.Append;
DM.BAKIMTARIH.AsString := DATETOSTR(incmonth(bas_tar,6));
DM.BAKIMtaksit.AsInteger := i;
DM.BAKIM.Post;
end;
end;
Re: 6 ay arayla takistlendirme
s.a
Degerli üstadım alakel birde şu koda bakarmısın
not =
Edit1 icine taksit adet girilecek
Edit2 icine 180 gün yaz
kolay gelsin
Degerli üstadım alakel birde şu koda bakarmısın
Kod: Tümünü seç
procedure TForm1.Button3Click(Sender: TObject);
var
Tmp : TDateTime;
AL,TMiktar:integer;
begin
Tmp := Now;
TMiktar:=StrToInt(Edit1.Text);
for AL:=1 to TMiktar do
begin
DataSet1.Append;
TMP := TMP + StrToFloat(Edit2.Text);
DataSet1TARIH.AsDateTime:= Tmp;
DataSet1ACIKLAMA.AsString:=IntToStr(AL)+'.Bakım Tarihi';
DataSet1.Post;
DataSet1.Next;
end;
end;
Edit1 icine taksit adet girilecek
Edit2 icine 180 gün yaz
kolay gelsin
Zengin
Re: 6 ay arayla takistlendirme
Periyodik bakım gün olarak mı veriliyor ? ( 180 gün demişsin ) Bu şekilde ise kod doğru çalışıyor.
Duruma göre ilerde bir sorunla karşılaşabilirsin. Şöyle ki; DateTime içeriğinde tarih ve saat birlikte kaydediliyor. Şimdi başka bir başlıkta da benzer bir konu tartışıldı ama burada da yineleyim :
Girdiğin tarih ( now ) demişsin ya, girdiğin saati de içeriyor. İleride iki tarih arası sorgular / arama yaparken karşılaşacağın muhtemel sorun, benzer tarihler olduğu halde (mesela her iki tarih de 20.05.2010 olsun) her tarih için farklı saat olmasından dolayı iki farklı tarih olarak ( 20.05.2010 - 22:00 ile 20.05.2010 - 22:35 eşit değildir çünkü saatleri farklıdır ) değerlendirilecek ve eşitlik sorgusu sonuçsuz olacaktır. Yapacağın sorgulara göre bu ihtimali göz önünde bulundurman yeterli.
Duruma göre ilerde bir sorunla karşılaşabilirsin. Şöyle ki; DateTime içeriğinde tarih ve saat birlikte kaydediliyor. Şimdi başka bir başlıkta da benzer bir konu tartışıldı ama burada da yineleyim :
Girdiğin tarih ( now ) demişsin ya, girdiğin saati de içeriyor. İleride iki tarih arası sorgular / arama yaparken karşılaşacağın muhtemel sorun, benzer tarihler olduğu halde (mesela her iki tarih de 20.05.2010 olsun) her tarih için farklı saat olmasından dolayı iki farklı tarih olarak ( 20.05.2010 - 22:00 ile 20.05.2010 - 22:35 eşit değildir çünkü saatleri farklıdır ) değerlendirilecek ve eşitlik sorgusu sonuçsuz olacaktır. Yapacağın sorgulara göre bu ihtimali göz önünde bulundurman yeterli.
Re: 6 ay arayla takistlendirme
now o kadarda önemli değil. zaten now da kullanmıyorum. onun yerine date yazılabilir ama ben veri tabanında girilen tarihi alıyorum. bu işimi görüyor zengin hocama teşekkür ederim. bunun tek sakıncası ayları aynı günde vermiyor. ama buda bir çözüm.