Часто задаваемые вопросы: TBarCode/SAPwin - SAP Barcode DLL
Ограничение данных для 2D-штрихкодов
Ограничение данных для 2D-штрихкодов
В зависимости от версии SAP и того, используете ли вы SAPscript или Smart Forms, для штрихкодов действует ограничение от 70 до 255 символов.
- Техническая подоплёка: в SAP строки обрабатываются в два этапа: на первом этапе абзац обрабатывается как обычный текст, то есть переносы строк добавляются по мере необходимости (в зависимости от доступного пространства и размера шрифта). На втором этапе строка, помеченная как штрихкод, передаётся генератору штрихкодов, и добавляется изображение штрихкода. Но в штрихкод преобразуется только первая строка (до переноса текста) — остальные остаются непреобразованными. Поэтому цель — избегать ненужных переносов текста и уместить данные штрихкода в одну строку текста.
Ниже описаны возможные обходные пути для преодоления этого ограничения:
Размер шрифта
Используйте очень маленький размер шрифта (например, 6 пунктов) для строки, в которой вы рисуете штрихкод. Это увеличивает количество символов для фактической строки.
Smart Forms
Ознакомьтесь с примечанием OSS 497380. Попробуйте активировать штрихкод через print control и использовать несколько полей (каждое по 255).
SAPscript
Используйте команду Print control, как показано ниже. Имена print control можно увидеть в типе устройства (SE73 printer barcodes). Разбейте данные на несколько полей (каждое по 68).
/: PRINT-CONTROL SBP90. = &V_BC1& = &V_BC2& /: PRINT-CONTROL SBS01.
Согласно примечанию SAP 197177, может потребоваться обрамить команду print control тегом маленького шрифта:
* <fs><32> /: PRINT-CONTROL SBP90. = &V_BC1& = &V_BC2& /: PRINT-CONTROL SBS01. * </>
В качестве альтернативы можно использовать команду RAWTEXT, как показано в примечании SAP 497491:
/: PRINT-CONTROL SBP90. /: RAWTEXT &V_BC1& /: RAWTEXT &V_BC2& /: PRINT-CONTROL SBS01.
Переменные Barcode DLL
Barcode DLL поддерживает «переменные», которые объединяются перед созданием штрихкода. С этим методом также нужно разбивать данные на несколько «фрагментов данных». Преимущество: вы можете использовать обычные форматы символов для создания штрихкода и обойтись без команды print control, специфичной для типа устройства.