Birbirini Takip Eden Sıralı Aylar ???

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
gamsizgani

Birbirini Takip Eden Sıralı Aylar ???

Mesaj gönderen gamsizgani »

Bir edit nesnesine Peşinat tarihi giriliyor ve başka bir edit içinde taksit sayısı seçiliyor. İlk girilen edit nesnesindeki tarih ve taksit sayısı girilen edit.teki taksit sayısına göre diğer tarih içeren editlerin birbirini takip etmesi gerekiyor.

Yani;

Diyelim EDIT1 nesnesine 31.01.2004 girildi ve Taksit sayısı olan edite Peşinat hariç 5 Taksit seçeneği seçildi,

EDIT2=29.02.2004
EDIT2=31.03.2004
EDIT2=30.04.2004
EDIT2=31.05.2004
EDIT2=30.06.2004 şeklinde olacak.

Bunu sadece EDIT nesnesi kullanarak nasıl yapabilirim???

Teşekkür ederim...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Niye illa Editle istiyorsun ki? Editlerle böyle birşey yapmak hamallık. Grid benzeri birşey kullan.

Kolay gelsin.
gamsizgani

Mesaj gönderen gamsizgani »

Hangi Grid.i kullanmamı önerirsin? Hangi Grid.i kullanırsam kullanayım. Peşinat Tarihi ve 1.Taksit Tarihi ile Peşinat Tutarı ve 1.Taksit Tutatrı boş geçilirse zorunlu giriş mesajı ile o alana tekrar geri dönmesi gerekiyor.

Rica etsem yardımcı olması açısından Peşinat ile birlikte artı 11 taksit sistemine göre, seçilen taksit sayısı baz alınarak örnek bir kod yazabilir misin?

Mesela;

ComboBox:= Taksit sayısı seçeneği olsun

Grid(Toplam Tutar)

Grig1:= Peşinat
Grid2:= 1.Taksit
Grid3:= 2.Taksit
Grid4:= 3.Taksit
Grid5:= 4.Taksit
Grid6:= 5.Taksit
Grid7:= 6.Taksit
Grid8:= 7.Taksit
Grid9:= 8.Taksit
Grid10:= 9.Taksit
Grid11:=10.Taksit
Grid12:=11.Taksit olsun.

ComboBox.ta 5 Taksit seçtiğimizi, Toplam Tutarın 650.00 YTL. Peşinatın 150.00 YTL. düşünelim.

Grid1(Peşinat) :=16.01.2004 ---> Edit1.Text:=150.00 YTL.
Grid2(1.Taksit):=29.02.2004 ---> Edit2.Text:=100.00 YTL.

5 Taksit seçildiği için, 1.Taksit tarihi baz alarak

Grid3(2.Taksit):=31.03.2004 ---> Edit3.Text:=100.00 YTL.
Grid4(3.Taksit):=30.04.2004 ---> Edit4.Text:=100.00 YTL.
Grid5(4.Taksit):=31.05.2004 ---> Edit5.Text:=100.00 YTL.
Grid6(5.Taksit):=30.06.2004 ---> Edit6.Text:=100.00 YTL.

olsun ve;

5 Taksit seçenenği seçildiği için

Grid7(6.Taksit) :='' ---> Edit7.Text :=''
Grid8(7.Taksit) :='' ---> Edit8.Text :=''
Grid9(8.Taksit) :='' ---> Edit9.Text :=''
Grid10(9.Taksit) :='' ---> Edit10.Text:=''
Grid11(10.Taksit):='' ---> Edit11.Text:=''
Grid12(11.Taksit):='' ---> Edit12.Text:=''

Yani;

Seçilen Taksit Sayısına göre Taksit adedi kadar ilgili Nesneler dolu olsun sadece, diğerleri boş olsun.

Umarım açık olarak anlatabilmişimdir.

Teşekkür ederim.
gamsizgani

Mesaj gönderen gamsizgani »

Tekrar Merhaba

Şu sorunuma bi çözüm üretecek arkadaş olursa çok sevinirim. Hayat paylaştıkça anlam kazanır...
Kullanıcı avatarı
zynex
Üye
Mesajlar: 87
Kayıt: 02 Nis 2006 02:53
Konum: Çanakkale

Mesaj gönderen zynex »

Merhaba arkadaşım fazla bu tür işlerle ilgilenmeme rağmen şöyle bir öneride bulunabilirim. Toplam tutardan peşinatı düştükten sonra kalan kısmı döngüyle bir gridin içine yazdırabilirsin taksit ödemeleri geldikçe ödendi ibaresi eklersin. Bu tarz bişey işini görebilir.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Re: Birbirini Takip Eden Sıralı Aylar ???

Mesaj gönderen rsimsek »

gamsizgani yazdı:Bir edit nesnesine Peşinat tarihi giriliyor ve başka bir edit içinde taksit sayısı seçiliyor. İlk girilen edit nesnesindeki tarih ve taksit sayısı girilen edit.teki taksit sayısına göre diğer tarih içeren editlerin birbirini takip etmesi gerekiyor.

Yani;

Diyelim EDIT1 nesnesine 31.01.2004 girildi ve Taksit sayısı olan edite Peşinat hariç 5 Taksit seçeneği seçildi,
....
@gamsizgani olayı başta hatalı tasarlıyorsun :!: Tarif ettiğin gibi EDIT ler üzerinde tasarım olmaz. Veritabanı, tablolar ve içerdiği alanlar esas alınarak tasarım yapılır :idea:
Senin yapacağın müşteri tablosunu, ürün tablosunu oluşturmak ve daha sonra satış hareketlerinin işleneceği satış hareket tablosunu oluşturup tarih, müşteri kodu, ürün kodu, peşinat, iskonto, taksit sayısı, taksit başlangıç tarihi ve peşinat iskonto düşüldükten sonra kalan tutarın taksit sayısına bölünüp TAKSIT1, TAKSIT2,...TAKSIT18 gibi alanlara atamak. Daha sonra da TAKSIT_TARIHI1, TAKSIT_TARIHI2,...TAKSIT_TARIHI18 ve ODENDI1, ODENDI2,...ODENDI18 gibi alanlarla da ödeme durumunun kontrol etmen. Bu taksitleri ayrı bir tabloda tutabileceğin gibi tek tabloda aynı kayıt üzerinde de tutabilirsin. Nasıl kolayına gelirse.. Genel taslak yaklaşık bu şekildedir. Bence buna göre veya geldiğin noktaya göre olayı baştan tümüyle gözden geçirmen faydalı olacaktır. Yoksa edit ler üzerinde kısır döngü ile bir şey ortaya çıkarman zordur. Bugün çalışsa da yarın gümlemeye yatkın bir proje olacaktır :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
gamsizgani

Mesaj gönderen gamsizgani »

Öncelikle ilgilenen arkadaşlara çok teşekkür ederim. Benim asıl zorlandığım konu taksitleri tutar bazında böldürmek değil, seçilen taksit miktarına göre, kaç taksit seçildiyse o kadar Edit nesnesi içinde kriter alınan tarihi takip etmesi. Yani 12 tane toplam edit var ve 6 taksit seçildiyse Peşinata ait ilk Edit nesnesine girilen manuel tarihi takiben sonraki 6 adet Edit nesenesindeki tarihlerin de birbirini takip etmesi ve son kalan 5 Edit nesnesinin boş kalması. Takip olayı ay sonlarına denk gelmesi durumunda asıl burda çıkışsız kalıyorum.

Bu döngüyü sağladıktan sonra verileri veri tabanına göndemek istiyorum.
Kullanıcı avatarı
zynex
Üye
Mesajlar: 87
Kayıt: 02 Nis 2006 02:53
Konum: Çanakkale

Mesaj gönderen zynex »

bu olayı edit kullanmayarak çok kolay yapabilirsin. Tarih Kısmını sabitlemen bence gereksiz çünkü taksitlerin erken geldiğini ve geç geldiğini düşünürsek bu olay yersiz olacaktır. for döngüsüyle tarihleri gridin içine çok rahat aktarabilirsin.
Kullanıcı avatarı
interboy
Üye
Mesajlar: 84
Kayıt: 18 Mar 2005 02:52

Mesaj gönderen interboy »

tarihteki ay bölümünü artırmak icin IncMonth die bi fonksiyon wardı sanırım daha önce forumda konuşulmuşltu. onu bi arat. tarihleri o şekilde artırıp edit1.text=incmonth(...) şeklinde atama yapabilirsin.

umarım soruyu doğru anlamışımdır.

selametle..
gamsizgani

Mesaj gönderen gamsizgani »

Tarihleri belli bir ödeme gününe sabitlemem gerekiyor. Bu tarihler ödeme yapılması gereken sabit tarihler. Farklı bir tarihte getirmesi önemli değil. Erken ya da geç ödeme yapıldığı tarihler için ayrı bir alan tanımladım zaten. Lütfen sıkıntısını çektiğim konuda örnek bir kod yazarak yardımcı olursanız sevinirim. Teşekkür ederim...
gamsizgani

Mesaj gönderen gamsizgani »

Arkadaşlar şu sorunuma basit bir kod ile yardımcı olacak arkadaş olursa inanın çok sevinirim. :cry: :( :cry: :(
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Kod: Tümünü seç

Var 
  tarihler: array[1..12] of string;
  i : integer;
  yil,ay,gun:word;
begin
  tarihler[1]:=DateToStr(Taksit1Tarihi);
  For i:=2 to 12 Do tarihler[i]:='';
  For i:=2 To TaksitMiktari Do
  Begin
    DecodeDate(StrToDate(tarihler[i-1]),yil,ay,gun);
    ay:=ay+1;
    if ay>12 Then
    begin
       yil:=yil+1;
       ay:=1;
    end;
    tarihler[i]:=DateToStr(EncodeDate(yil,ay,1)-1);
  End;
  
  edit1.Text:=tarihler[1];
  edit2.text:=tarihler[2];
  ...
  edit12.Text:=tarihler[12];

end;
Son günü bulmak için sitenin ipuçları bölümünü kullandım.
gamsizgani

Mesaj gönderen gamsizgani »

Arkadaşım çok teşekkür ederim ilgine. Umarım bu kodlar tam istediğim işlevi görür. Şu an deneyemiyorum. Şimdi de benim Delphi8.de bi problem çıktı. Ama ilk fırsatta deneyeceğim. Sana ve diğer tüm arkadaşlara bir kez daha teşekkür ederim:)
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Görevimiz.

Bu arada ben de denemedim
En son ulu coder tarafından 16 Nis 2006 05:33 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
gamsizgani

Mesaj gönderen gamsizgani »

Bi ricada bulunabilir miyim. Eğer müsaitsen kodların istediğim gibi çalışıp çalışmadığına bi bakabilir misin.

Bu arada benim MSN adresim: gamsizgani@mynet.com

MSN.ne eklersen zaman zaman bilgi alış-verişinde bulunabliriz. :wink:
Cevapla