Forum
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...
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.
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.
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] )
Bence makaleyi bir kaç kez daha okursanız anlayabilirsiniz, bir defa daha okuyun ve anlamadığınız yer neresi ise yardımcı olalım.
Ö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.
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.
Şö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
Ben çarpan değerini yanlış kullanmışım anlaşılan,
Çok teşekkür ederim
Rica ederim.
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.
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.
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
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.
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.
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.
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.
Merhaba Orhan Bey,
Hatalı olan örnek Ean aşağıda
544900018362*
İyi çalışmalar
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