[VBA] Barkod Parçalama Yöntemleri Hakkında
#1
Değerli forum üyeleri, herkese merhaba,

Access-Sql ve yabancı kaynaklar da dahil olmak üzere bir çok sayfayı inceledim ancak makul bir çözüm göremediğim için burada bir konu açarak fikirlerinizi öğrenmek istedim.
Genellikle tam barkodun tabloda tanımlanması ile okutulan ürün ile işlem yapılma üzerine örnekler ve yapılar mevcut. 

Ancak benim yapmak istediğim çalışma GS1 ve HIBC barkodlar okunduğunda yapısal tipine bağlı olarak Ürün ID'si, LOT, Son Kullanım Tarihi vb. öğelerin ayrıştırılması.

Bu ayrıştırmayı yapmak için Viasual Basic tarafında bir kod yazdım.
Mid, Left ve Split gibi komutlar ile barkod yapılarına göre tablo üzerinde ayrıştırma yapabiliyorum.

Merak ettiğim konu acaba daha efektif kodlar kullanarak bu ayırmalar yapılabilir mi diye fikirlerinizi almak. Her ne kadar Mid, Left ve Split gibi komutlarla da çözülebilse de barkodların yapısındaki alternatifler düşünüldüğünde tüm tipleri okuyabilmek için çok fazla If else yaparak kaotik bir duruma gitme ihtimali bulunuyor.

Ekteki örnek mevcut tanımlamalara bağlı olarak doğru çalışmakta.

GS1 ve HBIC için bir matrix bulunmakta ve tüm çözümlemeler buna göre yapılabilmekte.


Burada sorun oluşturabilecek temel sorun LOT'un 20 karaktere kadar uzayabilme ihtimali veya kod sıralamasının (01 ile kesinlikle başlamakta) 
01 - 11 - 10 - 17 yada
01 - 17 - 10 olma ihtimali durumları.

Acaba nasıl bir yaklaşım düşünülmedir? Neler tavsiye edersiniz?

Teşekkürler.


Eklenti Dosyaları
.jpg   GS1.jpg (Boyut: 106,58 KB / İndirilme: 51)
.zip   DepoBarkod.zip (Boyut: 138,07 KB / İndirilme: 51)



  Alıntı
Bu mesajı beğenenler:
#2
3, 4, 7... adet farklı barkod örneği verebilir misiniz?

Barkod uygulama klavuzu

[Resim: attachment.php?aid=25012]

Böyle midir?


Eklenti Dosyaları
.png   BarKodOrnek.png (Boyut: 217,96 KB / İndirilme: 259)



  Alıntı
Bu mesajı beğenenler:
#3
Merhaba dsezgin,

Öncelikle ilginiz için teşekkürler.
İlettiğiniz sanırım GS1 için TOBB dan bir yapısal kılavuz bölümüne ait bir bölüm. Her ne kadar tanımlama genel itibarla uygun olsa da ürün tipine bağlı olarak perakende satılabilen/satılamayan, steril/nonsteril vb. farklı bir çok tip için belirlenen ürün tanımlama bilgilerine bağlı değişkenlik gösteren bir algoritma mevcut.

En çok karşılaşılan tiplerle ilgili biraz detay vererek iletmeye çalışıyorum. 
Burada bu detaya girmemin sebebi hem bu denli platformlarda örnek bulunmaması hem de belki bu konu hakkında arayış içinde olan kişilere de fayda sağlayabilmek amaçlıdır.


Genel örnek ve kırılımlar için belirteçleri renklendirdim.

GS1
Genellikle 01 10 11 17 ayraçları mevcuttur, ancak ilk ilettiğim mesajdaki gibi ek parametrelerde bulunuyor olabilir.
  • 01 -> SKU -> 14 Karakter
  • 11 -> Üretim Tarihi -> YYMMDD
  • 17 -> Son kullanım Tarihi -> YYMMDD
  • 10 -> LOT -> 20 digit’e kadar uzayabilir
Sıralama genellikle aşağıdaki tiplerde olabilir.
  • 01 – 11 – 17 – 10
  • 01 – 11 – 10
  • 01 – 10
  • 01 – 10 - 17
  • 01


Tekil ürün örnekler:
0107392532185632112111091726110910481340
010764016651141011201204100000381358
0107392532217364112103291731032810b210003273
01072900154771231724021510ov1500388

Sorun oluşturabilecek tip:
10 yani LOT ortada olma durumunda ve 20 karaktere kadar
01073925322142881048231317261124

Paket barkod ve paket içi ürün barkod örneği :
X ürünü (10'lu paket) : 0207392532144554104794423710  (en sondaki 10 paket içi ürün sayısını ifade etmekte)
X ürünü (10'lu paket içindeki tekil ürünler): 0107392532144554112110081726100810479442

HIBC
Bu tipte aslında durum GS1'e göre sayılar haricinde özel karakter ve sabit karakterlerle ayrım yapıldığından çok daha kolay açıkçası. Bunu da sadece referans olması açısından iletiyorum.

İlk 4 karakter (_ hariç) Firma adı tanımı
SKU
(2) kontrol sayısı sabit
.++ ayırıcı
(3) Tip1 veya Tip2 belirteci (yoksa Tip 1, varsa Tip 2)
SKT - Tip1 veya Tip2'ye göre MMYY ya da YYMMDD
LOT - 20 Karaktere kadar
.16D - Üretim tarihi belirteci
YYYYMMDD Üretim Tarihi
(3) alfanumerik son karakter


Tip1 : SKU - SKT - LOT
Tip2 : SKU - SKT - LOT - Üretim Tarihi

Tip 1: _EFRI 99999999 2 .++ MMYY ########## 3
Tip 2: _EFRI 99999999 2 .++ 3 YYMMDD ########## .16D YYYYMMDD 3

Örnekler:
_efrı322624332.++3250126448411.16d20200127v
_efrı324622212.++3290303b190002396.16d20190304
_EFRI310334572.++3280618B180007346.16D20180619T
_efrı322624322.++3230311b180001663

NOT: Tekrar hatırlatmak isterim talebim sizlere iş yükü verip "Barkodları ayrıştırabilen bir uygulama yapabilir misiniz?" olmayıp; Mid, Left, Split 'den ziyade daha makul bir kodlama mantığı konusunda yönlendirmenizdir. 

Tekrar teşekkürler.



  Alıntı
Bu mesajı beğenenler:
#4
Regular Expression ile daha kolay olabilir gibi görünüyor. En uzun sıradan en kısa sıralmaya doğru sınanarak gidilerek desen uyuştuğunda doğru sonuç olacaktır tahminimce...



  Alıntı
Bu mesajı beğenenler:
#5
Merhaba Zeki Gürsoy,

Yanıt için teşekkürler, tavsiyeniz üzerine Regular Expression'ı inceledim, evet desen belirleyerek karşılaştırıcıları ve tanımlayıcıları ile sanki daha kolay işlem yapılabilir gibi gözüküyor.
Bunu detaylı inceleyeceğim, çok teşekkürler.

Regex ile çözüm bulduğumda da dosyayı yine herkesle paylaşıyor olacağım.



  Alıntı
Bu mesajı beğenenler:
#6
(16-03-2022, 13:15)yebala demiş ki: Regex ile çözüm bulduğumda da dosyayı yine herkesle paylaşıyor olacağım.

Ayraçlar sayı olunca, bar koda sabon uygulamak daha uygun gibi geldi.

.zip   DepoBarkod.zip (Boyut: 151,67 KB / İndirilme: 57)



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
access-sql-4 Dili Farklı Olan Barkod Okuyucudan Okutunca Farklı Sonuçlar Alıyorum gundogdu42 1 352 27-09-2024, 07:58
Son Mesaj: dsezgin
  Barkod Okuyucu Cihaz Ile Personel Giriş çıkış atkbursa 7 1.046 07-05-2023, 15:51
Son Mesaj: atkbursa
  [FORM] Webbrowser Barkod Görünmemesi fatih78_14 3 368 30-12-2021, 21:43
Son Mesaj: fatih78_14
  Barkod Okumama Hatası calief 2 542 07-04-2021, 09:12
Son Mesaj: calief
  Barkod Oluşturma memmetcavus 3 1.197 22-03-2021, 10:59
Son Mesaj: memmetcavus
  Yazılan Değeri "/" Gelen Alanlardan Parçalama memmetcavus 3 676 19-01-2021, 13:00
Son Mesaj: memmetcavus
  Barkod birsen.demirkaya 1 466 28-10-2020, 17:11
Son Mesaj: onur_can
  [RAPOR] Barkod Yazdırma İlhanYaylıcı 5 950 31-08-2020, 00:25
Son Mesaj: İlhanYaylıcı

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi