Otomatik Barkod No Verme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Otomatik Barkod No Verme

Mesaj gönderen ertline »

S.A. Arkadaşlar
Yaptığım programda barkod girişi yaptırıyorum.(Key press te Enter Tuşuna göre).Yazdırmak içinde bir comp. buldum.Fakat yapmak istediğim otomatik barkod numarası verme.
Seçilen Standarda göre (EAN13,EAN8,UPC,Code39....)barkod no vermesini istiyorum.Aslında mantık olarak şunu kurdum.
Barkodda EAN13 için
869 ülke kodu,daha sonra gelen 4 rakam üretici kodu,sonra gelen 5 rakamda ürün kodu oluyor.Son 1 tane rakam kalıyor.Burada tanımlama olarak otomatik vereceği sayı ürün kodu olması gerek sanırım(yalnışsa düzeltin lütfen).Peki son 1 tane sayı kalıyor bu sayı ne oluyor acaba ?
Birde

Kod: Tümünü seç

Bakod= 869 0143 01497 .
burda 869 için ayrı bir alan 0143 için farklı bir alan tutup, ürün kodu alanı olan 01467 içinde bir alan ayırıp bu alanı otomatik mi yapmalıyım ve son rakam olan .  için bir alan koymak gerekir mi?
Bu konuda çalışması olan arkadaşlar varsa yorumlarını bekliyorum.

Yardımlarınız için Teşekkürler...
"Bilginin Doruğuna Hep Birlikte..."
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba, Bu konu fazlasıyla konuşuldu forumda arama yapın derim ben

Ama kısaca izah etmek gerekirse sizin belirlediğiniz ve yapmaya çalıştığınız barkod olayı türkiye hatta dünya genelinde kullanılabilecek bişey eğer siz üretim yapam bir fabrika için bunu tasarlıyorsanız bunlara hiç gerek yok. Sadece sizin işinize yarayacak işletmedeki işlerin takibi için sıradan bir kodlama kullanabilrsiniz.

Saygılarımla
Kolay gelsin.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
ASE
Kıdemli Üye
Mesajlar: 518
Kayıt: 28 Ağu 2003 03:17
Konum: samsun
İletişim:

Mesaj gönderen ASE »

Barkod rasele rakmlardan oluşmaz. Eğer dikkat ettiyseniz bi çok ticari programda EAN13 standardı barkod numarası girerken 12 rakam girilir 13. rakam program tarafından (yanlışsız olarak) atanır. Bu rakamı üreten fonksiyonlar var tabi ama siz neden barkod numarası üreteceksiniz. Bu iş barkod tescil firmalarının işi. Onlar barkodları ürünlere tescil ederler satıcı da satar. Fonksiyon evde var sanırım. İlla gerekiyorsa akşam göndermeye çalışırım.
Kolay gelsin.
Allah'ım!...
Yol boyunca bırakma elimi...
Düşerim sonra...


ASE YAZILIM
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Mesaj gönderen ertline »

Yorumlarınız için teşekkürler.
Ase gönderirseniz sevinirim.

Ben bu işi bazı programlarda gördüğüm için merak ettim örneğinAkinsofun programında ve bi kaç farklı programda falan.
"Bilginin Doruğuna Hep Birlikte..."
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Şu fonksiyonları EAN-13 için kullanabilirsiniz:

Kod: Tümünü seç

function IsValidBarkodValue(AKod: string): Boolean;
var
  I, J: Integer;
begin
  Result := FALSE;
  if AKod = '' then Exit;
  if Length(AKod) > 13 then Exit;
  while Length(AKod) < 13 do AKod := '0' + AKod;
  for I := 1 to 13 do
    if not (AKod[I] in ['0'..'9']) then Exit;
  J := 0;
  for I := 1 to 12 do
    if Odd(I) then
      J := J + StrToInt(AKod[I])
    else
      J := J + StrToInt(AKod[I]) * 3;
  Result := IntToStr((10 - (J mod 10)) mod 10) = AKod[13];
end;

function FindValidBarkodValue(var St: string; IsNext: Boolean): Boolean;
var
  I: Integer;
  F: Double;
begin
  Result := FALSE;
  if St = '' then Exit;
  if Length(St) > 13 then Exit;
  for I := 1 to Length(St) do
    if not (St[I] in ['0'..'9']) then Exit;
  while Length(St) < 13 do St := '0' + St;
  if IsNext then
    I := 1
  else
    I := -1;
  while not IsValidBarkodValue(St) do
  begin
    F := StrToFloat(St) + I;
    if F < 0 then Exit;
    St := FloatToStr(F);
    if Length(St) > 13 then Exit;
    while Length(St) < 13 do St := '0' + St;
  end;
  Result := TRUE;
end;
İyi çalışmalar.
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Mesaj gönderen ertline »

Hakan hocam nasıl kullanacağım ve delphiden nasıl çağıracağım bu fonksiyonları örneğin butona basınca...

Çok tşk.
"Bilginin Doruğuna Hep Birlikte..."
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2384
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Aslında mantık olarak şunu kurdum.
Barkodda EAN13 için
869 ülke kodu,daha sonra gelen 4 rakam üretici kodu,sonra gelen 5 rakamda ürün kodu oluyor
walla iyi kurmuşsun, bravo. Öncelikle forum kurallarında belirtiğimiz gibi arama yapalım. Ben 1-2 kere anlattım 2. yada 3. olsun ve umarım son olur.
Kendi kafana göre barkod oluşturman sadece o şirketin kendi içinde kullanılacaksa mantıklı olur. Çünkü Barkod tüm dünyada uygulanan bir kodlama sistemidir. 869 Dünyadaki Türkiyenin kodudur. diğerlerinide sen yazmışsın zaten. Bu numarayı alabileceğin yer yanılmıyorsam sanayi bakanlığıydı. çünkü verilecek numara tün dünyada tektir. Son rakam dediğine gelincede o checkdigit ti. Yani kontrol sayısı. bunun sabit bir formülü vardır. internette her yerden bulabilirsin. Forumumuz başta tabiki. Bu CheckDigit in kullanım yeri ve amacı, barkod okuyucularokudukları barkodların doğruluğunu kotrol etmem için kullanır. Oto kontrol denilebilinir. Bu yüzdendirki barkod okuyucular dıt ladığında sayıyı hatasız okumuştur diyebiliriz. :)

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 !!!
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Mesaj gönderen ertline »

Burada alınacak tek rakam 869 mudur yoksa diğer üretici ve ürün kodlarınıda almak gerekir mi?
Bu formülü forum da nasıl aratayım bu arada?
"Bilginin Doruğuna Hep Birlikte..."
Cevapla