Отправляет email-рассылки с помощью сервиса Sendsay

Создаем свой бизнес

  Все выпуски  

Создаем свою информационную систему Штрихкодирование


Создаем свою информационную систему


Штрихкодирование

Мы очень часто используем штрихкодирование в своих проектах.

Надо сказать, что технология очень проста с точки зрения программиста, особенно, когда есть от чего оттолкнуться.

Очень советую посмотреть на проект, который называется Open Barcode  может быть он не самый новый в смысле технологий, но очень правильный по сути, к тому же хорошо транслируется почти на все языки.

http://grandzebu.net/index.php?page=/informatique/codbar-en/codbar.htm

По сути дела этот проект решил все проблемы использования штрихкодов, которые у нас были.

Печать штрихкода

Если быть точным, то некоторую проблему составляет именно создание (печать) штрихкода. Эти вопросы и решает проект Open Barcode. Решает  вполне изящно.  В состав проекта входит набор шрифтов, которые нужны для представления  штрихкода и  библиотечная функция, которая должна быть вызвана для пересчета  строки в строку, которая будучи напечатана  нужным шрифтом и дает нам штрихкод. Дальше можно использовать любой редактор отчетов, который может печатьа строки разными шрифтами.

Но опять же, никто не запрещает написать эту функцию и прямо врукопашную…

Пример печати номера текстом и баркодом.   Функция  - code128() это как раз вызов библиотечной функциииз OpenBarcode.

    Printer.Font = "Arial”   

    Printer.FontBold = False

    Printer.Print "Паллет №";

    Printer.FontBold = True

    Printer.Print poddon.code & "  ";

    Printer.Font = "Code 128"

    Printer.FontBold = False

    Printer.FontSize = 48

    Printer.Print code128(poddon.code)

Чтение штрихкода

Проблем чтения штрихкода для обычных компьютеров просто не возникает, так как стандартные штрихкоды читает практически любой сканер.

Сканер, на самом деле, просто "прикидывается" источником клавиатурного ввода. Наша задача сводится к простой вещи -  получить эти данные  именно в тот контрольный элемент, который ожидает ввода кода и затем правильно проверить и обработать.  Код приходит уже расшифрованным и именно таким, как он записан в штрихкоде.

 Если говорить о  КПК, то ситуация сложнее, но совсем немного.   В библиотеках к каждой конкретной версии КПК есть  необходимые функции для чтения штрихкода.  Остается только вставить такой вызов в нужное место програмы.

 

Пример для Palm OS

Описание объекта для работы с баркодами

private scan as new BarCode

 

 

Инициализация сканера штрихкодов

Private Sub Form_Load()

          scan.DefaultParams

          scan.TriggeringMode =hbScanHost

          scan.Enabled=True

End Sub

 

 

Срабатываение  сканера ( получение кода)

В данном случае у нас есть два баркода один чисто числовой, а другой содержит символы, это позволяет нам отличать их и распределять по разным полям

 

Private sub Scan_Decode(ByVal sData As String, ByVal eType As HbBarType)

  If eType<>0 Then

 

          if isnumeric(sData) then

                Field2.Text = sData

                exit sub

          end if

          if not isnumeric(sData) then

                Field1.Text = sData

                exit sub

          end if

  End If

End Sub

 

 

Выключение режима сканирования при закрытии формы

Private Sub Form_Unload()

          scan.Enabled=false

          set scan =nothing

End Sub

 

Пример для Windows CE

 

Описание объекта для работы с баркодами

Friend WithEvents Barcode1 As Barcode.Barcode

Инициализация сканера штрихкодов

Private Sub InitBarcode()

 

        Try

Me.Barcode1 = New Barcode.Barcode

            Me.Barcode1.DecoderParameters.CODE128 = Barcode.DisabledEnabled.Enabled

            Me.Barcode1.EnableScanner = True

            Me.Barcode1.ScanParameters.BeepFrequency = 2670

            Me.Barcode1.ScanParameters.BeepTime = 200

            Me.Barcode1.ScanParameters.CodeIdType = Barcode.CodeIdTypes.None

            Me.Barcode1.ScanParameters.LedTime = 3000

            Me.Barcode1.ScanParameters.ScanType = Barcode.ScanTypes.Foreground

            Me.Barcode1.ScanParameters.WaveFile = ""

        Catch

            MsgBox("Не обнаружен сканер.", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "Ошибка")

 

        End Try

   End Sub

Срабатываение  сканера ( получение кода)

Private Sub Barcode1_OnRead(ByVal sender As Object, ByVal readerData As Symbol.Barcode.ReaderData) Handles Barcode1.OnRead

        If readerData.Result = Symbol.Results.SUCCESS Then

 

 

            If readerData.Type = Symbol.Barcode.DecoderTypes.CODE128 Then

                txtCode.Text = readerData.Text

            End If

 

        End If

    End Sub

Выключение режима сканирования

Protected Overrides Sub Finalize()

        Me.Barcode1.EnableScanner = False

End Sub

Ведущий рассылки: Михаил М. Баранов
http:\\www.abolsoft.ru bami@abolsoft.ru

В избранное