Forum

Bildirimler
Hepsini Temizle

Ean kodu

20 Yazılar
5 Üyeler
0 Reactions
3,981 Görüntüleme
(@Erayyediok)
Gönderiler: 17
Eminent Member
Konu başlatıcı
 

Merhaba;

Sistemimizde ean 13 kullanılıyor. Manuel olarak ean kodu tanımlamam gerekiyor.(yaklaşık 300 civarında model kodu var bunları excelde dışveri al a uygun hale getirip, sisteme dahil etmek düşüncesindeyim)

8698771 55212 + check digit

 

sorunum budur mantıksal olarak bunu ean kodunun check digit ini bulmam için excele uygun hale getirebileceğim bir formülü varmıdır acaba ?

1313131313131  böyle bir sistem buldum ve denedim fakat olmadı.

 

Yardımlarınız için şimdiden teşekkürler...

 

 

 

 
Gönderildi : 16/12/2008 18:05

(@mesutsariyar)
Gönderiler: 2515
Co-Founder
 

Merhaba,


Check Digit hesaplama yöntemi için makalemi okuyabilirsiniz: Barcode

 
Gönderildi : 16/12/2008 18:09

(@Erayyediok)
Gönderiler: 17
Eminent Member
Konu başlatıcı
 

Merhaba,

Check Digit hesaplama yöntemi için makalemi okuyabilirsiniz: Barcode

 

Güzel ve açıklayıcı bir makale fakat benim sorumun tam olarak cevabı değil.

Yurt dışında imal edilecek olan ürünlerin koli barkodu olarak tanımlanacak bu kodlar, Yani orjinal olmuş veya olmamış çok sorun değil. Sondaki check digit i nasıl hesaplatabilirim.

 

 
Gönderildi : 16/12/2008 18:31

(@mesutsariyar)
Gönderiler: 2515
Co-Founder
 

Check digit için gerekli hesaplamanın nasıl yapıldığı anlatılıyor, gerisinide excelde kendiniz hallederseniz diye düşündüm.


Ama asıl soru bunu neden excel ile yapmaya çalıştığınız? Programa otomatik barkod tanımı yaptığınızda stok kartında o ürün için otomatik barkod oluşur ve kontrol satırını atar. Mikro da böyle en azından.


Nebim tarafında bu işlemin nasıl yapıldığını bilmiyorsanız Nebim bölümü ile ilgilenen arkadaşlarımızın yanıtlarını bekleyebilirisiniz.

 
Gönderildi : 16/12/2008 18:43

(@Erayyediok)
Gönderiler: 17
Eminent Member
Konu başlatıcı
 

869877155212 + 9

 

Yukarıdaki barkodun check digit inin 9 olduğunu yardımcı bir programcıkla bulabiliyorum. Benim yapmak istediğim  "869877155212" bu sayıların hangisi veya ne ile çarpıp toplayarak sondaki check digit olan 9 rakamını getiriyor.

Sistemde manuel olarak bunları açmaya kalksam çok uzun sürecek, Nebim kullanan arkadaşlar bilir, Dışveri al gönder diye bir modül var, Bu model, stok kodu, renk ve bedenleri excelde hazırlayarak çok daha kısa vakit de bunları sisteme dahil edebileceğim. Tabii şu check digit olayını aşarsam.

 

(Makalede son rakam yani check digit in 3 olduğu (3 olduğu doğrudur) fakat bu 3 ün nasıl geldiğini ben anlayamadım [:S] )

 
Gönderildi : 16/12/2008 18:57

(@mesutsariyar)
Gönderiler: 2515
Co-Founder
 

Bence makaleyi bir kaç kez daha okursanız anlayabilirsiniz, bir defa daha okuyun ve anlamadığınız yer neresi ise yardımcı olalım.


 link


 


Örnek Barkod değerimiz 86912488 olsun.


8691248 | 8 |


  8691248; işlemlerimizi bu değerler üzerinde yaparak üst satırda ayırdığımız  '| 8 |' değerinin gerçek olup olmadığını anlayacağız. Şimdi yapmamız gereken sağdaki ilk basamaktan (yani 8 değerinden) başlayarak ve bir değer atlayarak toplayarak gitmek,


yani 8 + 2 + 9 + 8=27 Çıkan 27 değerini 3 (sabit çarpan) ile çarpmamız gerekiyor, 27x3=81


Şimdi de yine sağdan ve bu sefer ikinci basamak olan değerden (4 rakamı) başlayarak ve birer atlayarak toplamak: 4 + 1 + 6=11


Şimdi bu iki değeri toplayalım: ilk değer + ikinci değer: 81+11=92


Şimdide bu çıkan sonucun kendinden sonra gelen on basamaklı sayıya olan farkını buluyoruz, yani: 100-92=8! İşte nihayet bulduk, bu değer bizim kontrol satırımızdaki değer ile aynı, yani ürünümüz orijinal, güle güle kullanabilirsiniz.

 
Gönderildi : 16/12/2008 19:12

(@Erayyediok)
Gönderiler: 17
Eminent Member
Konu başlatıcı
 

Benim ean kodum 13 lü

869877155212 + check digit

Sizin yönteminizle

8+9+7+1+5+1 = 31 * 3 = 93

6+8+7+5+2+2= 30

30+93=123  

130-123 = 7

ama benim ean kodumun check digit i "9"

 

Hesaplamada bende yanlış yapıyor olabilirim, kontrol ederseniz sevinirim. 

 

 

 

 

 

 

 

 
Gönderildi : 16/12/2008 20:01

(@mesutsariyar)
Gönderiler: 2515
Co-Founder
 

Şöyle olacak; 


869877155212


Birler basamağını alalım(soldan sağa doğru): 2 + 2 + 5 + 7 + 8 + 6 = 30


Şimdi çift gidelim (soldan sağa) : 1 + 5 + 1 + 7+ 9 + 8 = 31


formül neydi: birler toplamı * 3 + ikiler toplamı => 30 * 3 + 31 = 121


Check Digit: Çıkan sonucun, kendinden sonraki onluk değere olan farkıdır => 130 - 121 = 9

 
Gönderildi : 16/12/2008 20:57

(@Erayyediok)
Gönderiler: 17
Eminent Member
Konu başlatıcı
 

Ben çarpan değerini yanlış kullanmışım anlaşılan,

 

Çok teşekkür ederim

 
Gönderildi : 16/12/2008 21:01

(@mesutsariyar)
Gönderiler: 2515
Co-Founder
 

Rica ederim.

 
Gönderildi : 16/12/2008 21:05

(@haticeakgul)
Gönderiler: 983
Noble Member
 


Merhaba,


Check Digit hesaplama yöntemi için makalemi okuyabilirsiniz: Barcode



 


Güzel ve açıklayıcı bir makale fakat benim sorumun tam olarak cevabı değil.


Yurt dışında imal edilecek olan ürünlerin koli barkodu olarak tanımlanacak bu kodlar, Yani orjinal olmuş veya olmamış çok sorun değil. Sondaki check digit i nasıl hesaplatabilirim.


 



Merhaba;


Öncelike sorunu çözmenize sevindim.


Fakat koli kodu olarak  tanıtmak istediğinizi yazmışsınız renk beden takibi yapıyorsanız koli barkodu olarak kullanamazsınız.


hatırlatmak istedim.


iyi çalışmalar.

 
Gönderildi : 17/12/2008 01:30

(@orhanakdogan)
Gönderiler: 311
Reputable Member
 

Merhabalar.
Alternatif bir yöntem sunayım..


Siz yine 12 hane olarak excele girin ve dış veri al ile alın winner'a.
Sonrada aşağıdaki Sql cümleciğini çalıştıralım, Sql server da.



update tbStokBarkodu
set sBarkod=rtrim(sbarkod)+replace(cast(10-(((cast(SubString(sBarkod,1,1)AS int)+cast(SubString(sBarkod,3,1)AS int)+
cast(SubString(sBarkod,5,1)AS int)+cast(SubString(sBarkod,7,1)AS int)+
cast(SubString(sBarkod,9,1)AS int)+cast(SubString(sBarkod,11,1)AS int))+(cast(SubString(sBarkod,2,1)AS int)+
cast(SubString(sBarkod,4,1)AS int)+cast(SubString(sBarkod,6,1)AS int)+
cast(SubString(sBarkod,8,1)AS int)+cast(SubString(sBarkod,10,1)AS int)+
cast(SubString(sBarkod,12,1)AS int))*3)%10)AS varchar(1)),'10','0')
where len(rtrim(sbarkod))=12


 


Böylece Winnerdaki sadece 12 haneli tüm barkodların yanına 13. hane gelmiş oldu..
İyi çalışmalar.

 
Gönderildi : 17/12/2008 03:32

(@Erayyediok)
Gönderiler: 17
Eminent Member
Konu başlatıcı
 

Merhaba,

Check Digit hesaplama yöntemi için makalemi okuyabilirsiniz: Barcode

 

Güzel ve açıklayıcı bir makale fakat benim sorumun tam olarak cevabı değil.

Yurt dışında imal edilecek olan ürünlerin koli barkodu olarak tanımlanacak bu kodlar, Yani orjinal olmuş veya olmamış çok sorun değil. Sondaki check digit i nasıl hesaplatabilirim.

 

Merhaba;

Öncelike sorunu çözmenize sevindim.

Fakat koli kodu olarak  tanıtmak istediğinizi yazmışsınız renk beden takibi yapıyorsanız koli barkodu olarak kullanamazsınız.

hatırlatmak istedim.

iyi çalışmalar.

 

Merhaba,

Stok kodu renk beden detayını örnek olarak vermiştim. Hatırlatmanız için yinede teşekkürler.

 

Aslında ben konuyu farklı bir şekilde hallettim, Datebase in yedeğini alarak SQL server a attach ettim ean kod yapısını değiştirdim , Bir stok kartı açıp bol miktarda renk ve beden ekleyerek sistemden ean kodu verdirdim. Daha sonra sistemin verdiği check digit li ean kodlarını sisteme dahil ettim. Fakat yinede fazla bilgi göz çıkarmaz 🙂 

 

Cevap yazan tüm arkadaşlara tekrar teşekkür ederim

 
Gönderildi : 18/12/2008 03:38

(@sabriyilmaz)
Gönderiler: 69
Estimable Member
 

Merhaba, verdiğiniz SQL cümlesini uyguladığımızda, 12 haneli Eanlar 13 haneye dönüşüyor fakat sadece son rakamı çift olanları 13.haneye atıyor.


Tek sayı olanlar ise * olarak görünüyor.  


Örnek: 457454478512 gibi bir ean kodumuz olsun SQL çalıştırdığımızda 4574544785124 oluyor.


           457454478512 gibi bir ean kodumuz olsun SQL çalıştırdığımızda 4574544785123 olması gerekirken 457454478512* oluyor.


SQL i çalıştırdığımızda 13 üncü hane,2-4-6-8 ile bitiyorsa sorun yok. Ancak 3-5-7-9 ile bitiyorsa, bu rakamlar yerine * işareti geliyor.


İyi çalışmalar


Not:Yukarıdaki örnek eanlar digit değildir,atmasyondur.

 
Gönderildi : 24/06/2009 22:01

(@orhanakdogan)
Gönderiler: 311
Reputable Member
 

Merhaba Sabri bey,


update tbStokBarkodu
set sBarkod=rtrim(sbarkod)+
cast((10-(((cast(SubString(sBarkod,2,1)AS int)+
cast(SubString(sBarkod,4,1)AS int)+cast(SubString(sBarkod,6,1)AS int)+
cast(SubString(sBarkod,8,1)AS int)+cast(SubString(sBarkod,10,1)AS int)+
cast(SubString(sBarkod,12,1)AS int))*3+
(cast(SubString(sBarkod,1,1)AS int)+cast(SubString(sBarkod,3,1)AS int)+
cast(SubString(sBarkod,5,1)AS int)+cast(SubString(sBarkod,7,1)AS int)+
cast(SubString(sBarkod,9,1)AS int)+cast(SubString(sBarkod,11,1)AS int)))%10))%10 AS varchar(1))
where len(rtrim(sbarkod))=12


 


Yukardaki kodu kullanabilirsiniz.
Yalnız verdiğiniz örnekte (457454478512) 27*3+29 = 110 yapıyor yani 0 olmalıdır.
Önceki cümlecikte dediğiniz gibi * sonucu oluşuyordu şimdi düzeldi.

 
Gönderildi : 27/06/2009 04:23

(@sabriyilmaz)
Gönderiler: 69
Estimable Member
 

Yukarıda verdiğim Ean kodu atmasyondu.Sadece örneklem için yazıldı.


Elinize sağlık, ancak tek sorun kaldı. Bu sefer sonu (13.hanesi) 0 olacak sayılarda 0 yerine * atıyor.tek ve çift sayılar tamam.

 
Gönderildi : 29/06/2009 03:27

(@orhanakdogan)
Gönderiler: 311
Reputable Member
 


Yukarıda verdiğim Ean kodu atmasyondu.Sadece örneklem için yazıldı.


Elinize sağlık, ancak tek sorun kaldı. Bu sefer sonu (13.hanesi) 0 olacak sayılarda 0 yerine * atıyor.tek ve çift sayılar tamam.



 


2500 adet stok kartına otomatik ean13 oluşturdum sonra sql ile 13. haneyi sildim,
son yazdığım sorgu ilede 13. haneyi yeniden oluşturdum,
ilk halleri ile son hallerini yine sql ile kıyasladım ve 2500 değerde aynı çıktı, bir sorun göremedim.


bir önceki mesajımdaki test de sonu 0 lı bir eandı ve doğru veriyor.
Hatalıya bir örnek verirseniz yeniden gözden geçireceğim.

 
Gönderildi : 01/07/2009 06:58

(@sabriyilmaz)
Gönderiler: 69
Estimable Member
 

 Merhaba Orhan Bey,


 Hatalı olan örnek Ean aşağıda


544900018362*


İyi çalışmalar 


 

 
Gönderildi : 02/07/2009 02:17

(@orhanakdogan)
Gönderiler: 311
Reputable Member
 


 Merhaba Orhan Bey,


 Hatalı olan örnek Ean aşağıda


544900018362*


İyi çalışmalar 


 



 


Merhaba,
Son yazan sorguyu kullandım, 0 ekledi. Doğru Çalıştı yine.
Farkı yaratan nedir hiç fikrim yok.


Hatasız çalışan sorgu :


update tbStokBarkodu
set sBarkod=rtrim(sbarkod)+
cast((10-(((cast(SubString(sBarkod,2,1)AS int)+
cast(SubString(sBarkod,4,1)AS int)+cast(SubString(sBarkod,6,1)AS int)+
cast(SubString(sBarkod,8,1)AS int)+cast(SubString(sBarkod,10,1)AS int)+
cast(SubString(sBarkod,12,1)AS int))*3+
(cast(SubString(sBarkod,1,1)AS int)+cast(SubString(sBarkod,3,1)AS int)+
cast(SubString(sBarkod,5,1)AS int)+cast(SubString(sBarkod,7,1)AS int)+
cast(SubString(sBarkod,9,1)AS int)+cast(SubString(sBarkod,11,1)AS int)))%10))%10 AS varchar(1))
where len(rtrim(sbarkod))=12


 


 


 

 
Gönderildi : 02/07/2009 03:58

Sayfa 1 / 2
Paylaş: