Stok kodunu otomatik verme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Stok kodunu otomatik verme
S.A. arkadaşlar
Stok kodunu otomatik vermek istiyorum
Şöyleki
Stok Kodu:ST00001
burda ST kullanıcı tarafından belirlenen bir belirteç,00001 ise artan sayı şeklinde gitmesi gerekiyor.
Stok Tablosunda STOK_KODU alanım var(Varchar(10)) burada nasıl otomatik artış yaptırabilirim ve 00001 şeklinde bir formatlamayı nasıl yapacağım varchar old. için display format özelliğide yok.
Bu konuda yardımcı olursanız sevinirim.
Yardımlarınız için çok Teşekkürler...
Stok kodunu otomatik vermek istiyorum
Şöyleki
Stok Kodu:ST00001
burda ST kullanıcı tarafından belirlenen bir belirteç,00001 ise artan sayı şeklinde gitmesi gerekiyor.
Stok Tablosunda STOK_KODU alanım var(Varchar(10)) burada nasıl otomatik artış yaptırabilirim ve 00001 şeklinde bir formatlamayı nasıl yapacağım varchar old. için display format özelliğide yok.
Bu konuda yardımcı olursanız sevinirim.
Yardımlarınız için çok Teşekkürler...
"Bilginin Doruğuna Hep Birlikte..."
tablonda bir tane otomatik atran bir alan oluştur..
örnek alan otomatik olsun ;
varsayılan karakter genişliğinde 8 olsun gibi..
daha sonra kayıt sırasında;
şeklinde yapabilirsin..
örnek alan otomatik olsun ;
varsayılan karakter genişliğinde 8 olsun gibi..
daha sonra kayıt sırasında;
Kod: Tümünü seç
stokodu := stringofchar('0',8-length(inttostr(otomatik)))+inttostr(otomatik);
birde oromatik artması şu şekilde olacak eğer stok koduna kullanıcı bir kod girmezse otomatik gelecek, yani kullanıcı kendiside Stok kodu girebilmeli.
Selim bey Stok_kodu alanı Varchar buraya nasıl otomatik artan numara koyabiliriz.Stok tablosunda KNO diye bir artan numara var(generator).İkincisini nasıl açıp ta dephide yapacağım ve varckart alanda bu işlem olur mu?
Selim bey Stok_kodu alanı Varchar buraya nasıl otomatik artan numara koyabiliriz.Stok tablosunda KNO diye bir artan numara var(generator).İkincisini nasıl açıp ta dephide yapacağım ve varckart alanda bu işlem olur mu?
"Bilginin Doruğuna Hep Birlikte..."
ben size bu kodu gonderiyorum
burda son iki haneye gore atış yapıyorum;
sifirver mantıgı gelen bilginin uzunlugu ölçüm basına 0 ekliyor..!
bu işini görür sanırım kolay gelsin..!
burda son iki haneye gore atış yapıyorum;
sifirver mantıgı gelen bilginin uzunlugu ölçüm basına 0 ekliyor..!
Kod: Tümünü seç
dm.genelsql.close;
dm.genelsql.sql.text:='select (max(substr(STK_KOD,3,5))+1) as kd from dbkart';
dm.genelsql.open;
stkkod.text:='ST'+sifirver(dm.genelsql.FieldByName('kd').asstring,6);
selam kardeş sana basit bir yol olarak şunu söyliyim.
Sen tablonda Id diye bir Generators alan oluştur.Sonra.
Bu Id diye oluşturduğun alanın display formatına
S0000 yaz . Generatorsu 1 den başlattığınız varsaydım.
Siz eğer müdahe etmezseniz S0001,S0002.. şeklinde artıcaktır.Sonra
dedinizki ben bu stok kodu üzerinde gerekirse kendimde girebilmeliyim dediniz.Bu seferede kendiniz Arttırırsınız.
Nasılmı sana örnek bir kod
tabiiki bu Skod alanınızın display formatını S000 yapmayı unutmayın
Sen tablonda Id diye bir Generators alan oluştur.Sonra.
Bu Id diye oluşturduğun alanın display formatına
S0000 yaz . Generatorsu 1 den başlattığınız varsaydım.
Siz eğer müdahe etmezseniz S0001,S0002.. şeklinde artıcaktır.Sonra
dedinizki ben bu stok kodu üzerinde gerekirse kendimde girebilmeliyim dediniz.Bu seferede kendiniz Arttırırsınız.
Nasılmı sana örnek bir kod
Kod: Tümünü seç
var
deger : integer ;
begin
datamodule3.skart.last;
Deger := datamodule3.skart.Fieldbyname('Skod').Asinteger ;
datamodule3.skart.insert ;
datamodule3.skart.Fieldbyname('Skod').Asinteger := Deger + 1;
datamodule3.skart.Post;
s.a.
benzer bir yapı bende kullanıyorum.
Tnext bir autoincrement alanların tutulduğu dosya. bu dosyadan en son verilen değeriokuyorum sonra bir arttırıp afterpostta next tablosuna yeni değeri kaydediyorum.
dikkat edilmesi gerekn nokta bu tek kullanıcılı bir sisteme göre tasarlanmıştır. çok kullanıcı için biraz değişiklik yapmanız gerekecek ama kod işi yapan kodda var aradan çıkartırsın...
değişkenleride ayarlarsın..
kolay gelsin.
benzer bir yapı bende kullanıyorum.
Tnext bir autoincrement alanların tutulduğu dosya. bu dosyadan en son verilen değeriokuyorum sonra bir arttırıp afterpostta next tablosuna yeni değeri kaydediyorum.
dikkat edilmesi gerekn nokta bu tek kullanıcılı bir sisteme göre tasarlanmıştır. çok kullanıcı için biraz değişiklik yapmanız gerekecek ama kod işi yapan kodda var aradan çıkartırsın...
değişkenleride ayarlarsın..

Kod: Tümünü seç
TNext.Open;
st := TNextNewKey.AsString;
TNext.Close;
if st = '' then st := 'C00000';
///arttırmak için burdan
for a := length(st) downto 1 do
if not (st[a] in ['0'..'9']) then
begin
b := a;
break;
end;
s1 := copy(st, 1, b);
delete(st, 1, b); b := length(st);
val(st, l, i1); inc(l); str(l, st);
while b > length(st) do st := '0' + st;
st := s1 + st;
//buraya st değişkeninde artık bir sonraki değer var....
TCariCariNo.Value := st;
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Peki bi tabloda 2 tane artan numara tanımlayabiliyormuyuz?
Generator oluşturduk diyelim, delphide bunu datasetten nasıl yapacağım ben de bir tane KNO diye (Primary Key) bir generator var, ve datasette bu tanımlı, 2. generatörü aynı tabloda oluşturup nasıl datasette tanımlayacağım...
Generator oluşturduk diyelim, delphide bunu datasetten nasıl yapacağım ben de bir tane KNO diye (Primary Key) bir generator var, ve datasette bu tanımlı, 2. generatörü aynı tabloda oluşturup nasıl datasette tanımlayacağım...
"Bilginin Doruğuna Hep Birlikte..."
Yıllar önce yazdığım bir fonksiyonu kullanabilirsin...
viewtopic.php?t=2060&highlight=fatura
Vt ede yapacağın gruplamaya göre max ını alıp arttırabilirsin.
mesala
select max(stok_kod) from stok where kategori = ST vb...
viewtopic.php?t=2060&highlight=fatura
Vt ede yapacağın gruplamaya göre max ını alıp arttırabilirsin.
mesala
select max(stok_kod) from stok where kategori = ST vb...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
coderlord demiş:
ID
DID
kod
Adsoyad
şeklinde alanlarımız var
ID------------->generators autoincrement
DID------------>generators autoincrement
bu şekilde oluyor mu?..
hocam elbetteki bir Vt de birden fazla generators tanımı yapılabilir.Ben bir tablodan bahsetmiştim.Yani mesela carikart diye bir tablo oluşturdukBu pek doğru olmamış. VT'de istediğiniz sayıda generator tanımlayıp kullanabilirsiniz.
ID
DID
kod
Adsoyad
şeklinde alanlarımız var
ID------------->generators autoincrement
DID------------>generators autoincrement
bu şekilde oluyor mu?..
Evet oluyor.selman yazdı: hocam elbetteki bir Vt de birden fazla generators tanımı yapılabilir.Ben bir tablodan bahsetmiştim.Yani mesela carikart diye bir tablo oluşturduk
ID
DID
kod
Adsoyad
şeklinde alanlarımız var
ID------------->generators autoincrement
DID------------>generators autoincrement
bu şekilde oluyor mu?..

