S864721 No

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

S864721 No

Mesaj gönderen husonet »

Arkadaşlar Merhaba;

Fatura No.larını otomatik arttırmak için algoritma arıyorum enbüyük rakam 10 ise fatura n.su 11 olarak yeni fatura kesildiği zaman artacak ben bunu yaptım fakat fatura numara olaylarında alfabeyide devreye sokmak istiyorum örneğin son kesilen fatura n.su S864721 ise bir daha fatura kesmek istersem S864722 olacak veya A999 ise birdahakine B000 olacak arkadaşlar bunu nasıl yapabirim fikir ve önerileriniz için şimdiden teşekkür ederim.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

ben baştaki seri no ile fatura no'yu iki ayrı alana kaydediyordum. Mesela A 998 nolu fatura olsun. A yı bir alana, 998'i de bir alana yazıyordum. Bir dahaki sefere kullanıcı fatura girerken, A'yı aynen alıp, fatura no yu bir artırarak getiriyordum. A 999.

Diyelim seri değişti ve B ile başlayan bir seri geldi. İlkinde kullanıcı bir sefere mahsus elle düzeltip B 001 yapıyordu. Ben diğer fatura da otomatikmen B 002 olarak getiriyordum.

Kolay gelsin.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Gercekten vermiş olduğun fikir güzel birde benim iki fikrim var. Tablomuzdaki alanı metin olarak tanımlayalım ve alanımıza girdiğimiz metinleri alfabetik ve numerik haneleri tek tek alıp ascii kodlarına cevirip bir arttırırsak ASCII kodu olarak sonuca ulaşabilirmiyim acaba ?

Veya şu şekil nasıl olur acaba soldan başlayan ilk rakamı bir arttırıp 9 dan sonra yanındaki rakamı 1 arttıran 'A000009' + 1 'A000010' + 1 buraya ufak bir sorgu
if a = 9 Then
begin
a := 0;
b := b + 1;
End;
gibi ve 'A000090' + 1 sonuc 'A000100' bunun gibi
harf hanesine geldiği zamanda örneğin 'A999999' + 1 sonuc olarak 'B00000' yapmak programı ağırlaştırırmı teknik olarak
hangi algoritma şekli daha mantıklı ve basit gelir acaba
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

hocam bana bolca problem çıkaracak birşeymiş gibi geldi. İlerde bu yöntem başına çok bela çıkarır.

Eğer ille tek alanda saklamak istiyorsan,

1. Copy ile 2. karakterden sona kadar kopyala
2. Bunu Integer'a çevir
3. Bir artır
4. Tekrar stringe çevirip, ilk karakter ile (A,B..) birleştir. Bu arada kontrol yapıp 9999 gibiyse harfide bir artırabilirsin. A ise B yaparsın.

Kolay gelsin.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

BEnim Kullandığım Mustafanınkiyle aynı. 2 Alan var ilki fatura seri nosu yani 2 karakterlik string alan diğeri ise integer alan.
son numaraya gelince ise query ile yapıyorum.
where ile SeriNo yu filtreliyorum MAX(SiraNo)+1 ilede son numaranın bie fazlasını alıyorum
kolay gele
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 !!!
Cevapla