Supplement
Распространенные одномерные штрихкоды, такие как EAN в Европе и UPC в США, могут быть расширены с помощью дополнительного кода, размещаемого справа от основного кода.
UPC-A, UPC-E, EAN-13 и EAN-8 могут включать дополнительный штрихкод справа от основного штрихкода. Этот второй штрихкод, который обычно не такой высокий, как основной штрихкод, используется для кодирования дополнительной информации для газет, книг и других периодических изданий.
Дополнительный штрихкод может закодировать 2 или 5 цифр информации.
Двухзначный дополнительный код обычно применяется для кодирования информации о номере выпуска в периодических изданиях (журналы, газеты).
Дополнительный код позволяет не включать номер выпуска в основной штрихкод, оставляя его неизменным для всех выпусков. Так, нет необходимости считывать большой код, когда нужна лишь информация о выпуске.
Пятизначный дополнительный код часто применяется на книгах и содержит информацию о рекомендуемой розничной цене экземпляра. Из пяти символов первый обозначает код валюты, остальные 4 – цену.
Существуют определенные коды для обозначения без цены:
- код 90000 – для книги розничная цена не определена;
- код 99991 – книга распространяется бесплатно.
Но дополнительный код может хранить и другую информацию, для внутреннего применения в издательстве.
Каждая цифра кодируется 7 модулями (линиями и пробелами).
Структура кода:
- стартовый символ (1011 если провести аналогию между штрихами и цифрами);
- первый символ данных;
- разделитель (01);
- второй символ данных либо 4 символа в случае 5-символьного кода.
Явного контрольного символа и стоп-символа не предусмотрено. После разделителя считывается допустимое количество символов.
Кодирование данных проводится по наборам "левый четный" и "левый нечетный", применяемым в EAN.
В зависимости от размерности дополнительного штрихкода применяются разные шаблоны четности символов. Четность символа определяет контрольную сумму.
Если дополнительный штрихкод двузначный, то двузначное число, которое образуется в результате сложения первого и второго числа, необходимо разделить на 4. Далее, если остаток от деления четное число, то первый символ кодируется с четностью, а второй с нечетностью. Это означает, что для кодирования первой цифры будет использован четный набор значений, а второго – нечетный.
Теперь, при сканировании будет определяться четность прочитанного значения. Если она не соответствует расчетной четности, которая ожидается – значит штрихкод прочитан неправильно.
В случае с пятизначным кодом расчет контрольной суммы сложнее. Считается, что последняя цифра кода находится в нечетной позиции. Начиная с последней цифры и до первой по очереди назначаются четные и нечетные позиции. Затем, берется сумма всех нечетных цифр и умножается на 3. Сумма всех четных цифр умножается на 9. Далее берется единица измерения от суммы двух предыдущих вычислений, то есть крайняя правая цифра. Это и есть контрольная цифра по которой определяется шаблон четности в специальной таблице.
Для формирования штрихкода Supplement 2 (для двухзначного кода) или Supplement 5 (для пятизначного кода) в FastReport .NET выберите объект Штрихкод (Barcode) на панели компонентов в дизайнере отчётов. В выпадающем списке перейдите в категорию "Прочие", а затем Supplement 2 или Supplement 5:
После выбора штрихкода разместите его на странице отчёта. Позиционируйте дополнительный код рядом с основным:
С помощью двойного клика по добавленному штрихкоду открывается редактор. Также редактор кода можно открыть нажатием кнопки в контекстном меню добавленного объекта, которое вызывается нажатием правой кнопки мыши:
Как и все штрихкоды в FastReport .NET Supplement имеет ряд свойств, которые вы можете отредактировать в инспекторе свойств объекта:
Свойство | Описание |
---|---|
Поворот (Angle) | Позволяет задать поворот объекта на один из фиксированных углов – 0, 90, 180, 270 градусов. |
Масштаб (Zoom) | Задает масштабирование штрихкода. Это свойство используется только вместе со свойством "Авторазмер". |
Авторазмер (AutoSize) | Если это свойство включено, объект будет растягиваться, чтобы показать штрихкод целиком. Если свойство отключено, штрихкод будет растянут до размеров объекта. |
Показывать текст (ShowText) | Определяет, надо ли показывать ли текст в нижней части штрихкода. |
Поле данных (DataColumn) | Поле данных, из которого загружать текст объекта. |
Выражение (Expression) | Выражение, которое возвращает текст объекта. |
Текст (Text) | Текст объекта. |
Отступы (Padding) | Позволяет задать отступы от краев объекта, в пикселях. |
Ширина полос (WideBarRatio) | Это свойство имеется у всех линейных штрихкодов. Оно определяет относительный размер широких полос штрихкода. |
Контрольная сумма (CalcCheckSum) | Это свойство имеется у многих линейных штрихкодов. Оно определяет, надо ли считать контрольную сумму автоматически. Если это свойство отключено, контрольная сумма должна присутствовать в тексте объекта. |
Отображение вертикальных полос (DrawVerticalBearerBars) | Если это свойство включено, то у объекта будут отображаться боковые линии. |