мета-данные страницы
Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
mobile_faq_customezpl [24.10.2022 13:02] FeLDMaRShaL [Предварительная подготовка к работе в программе GoLabel] |
mobile_faq_customezpl [17.11.2023 13:36] (текущий) FeLDMaRShaL [Настройка кодировки при печати бирки] |
||
---|---|---|---|
Строка 11: | Строка 11: | ||
* На вкладке "Дополнительно", перетаскиваем в поле редактирования бирки элемент “Текст шрифтами принтера”. Переходим на вкладку "Тип шрифта", выбираем "Шрифт TrueType", указываем имя шрифта TA и приступаем к загрузке шрифта в память принтера | * На вкладке "Дополнительно", перетаскиваем в поле редактирования бирки элемент “Текст шрифтами принтера”. Переходим на вкладку "Тип шрифта", выбираем "Шрифт TrueType", указываем имя шрифта TA и приступаем к загрузке шрифта в память принтера | ||
{{:godex5.png?nolink&800|}} | {{:godex5.png?nolink&800|}} | ||
- | * Для использования подходит любой моноширный шрифт, мы рекомендуем использовать шрифт CourierNew. После этого этапа предварительная настройка принтера заканчивается. | + | * Для использования подходит любой моноширинный шрифт, мы рекомендуем использовать шрифт CourierNew. После этого этапа предварительная настройка принтера заканчивается. |
{{:godex6.png?nolink&400|}} | {{:godex6.png?nolink&400|}} | ||
* Продвинутые пользователи могут использовать несколько шрифтов, например, шрифт LiberationMono-Bold - он более "Жирный", и если требуется выделить на бирке элемент можно воспользоваться этим шрифтом. Все используемые шрифты должны иметь разные название, например, второй шрифт лучше назвать TB. | * Продвинутые пользователи могут использовать несколько шрифтов, например, шрифт LiberationMono-Bold - он более "Жирный", и если требуется выделить на бирке элемент можно воспользоваться этим шрифтом. Все используемые шрифты должны иметь разные название, например, второй шрифт лучше назвать TB. | ||
+ | |||
+ | ===== Создание будущего шаблона бирки ===== | ||
+ | * На предыдущем этапе мы настроили все необходимые параметры нашей бирки (используемого принтера, указав тип носителя, наличие автоматического обрезщика и т.п.). Теперь необходимо задать размер бирки и тип используемой бумаги. Для этого на вкладке "Основной" нажимаем кнопку "Новая" и настраиваем "Размер носителя" и "Тип бумаги". В примере мы будем настраивать бирку размером 58*30 без отступов на непрерывной чековой ленте без разрыва. | ||
+ | {{:godex7.png?nolink&800|}}\\ | ||
+ | {{:godex8.png?nolink&400|}} | ||
+ | * Если на текущем этапе экспортировать бирку в формат EZPL то увидим наш шаблон для печати. В этом шаблоне указаны все необходимые параметры (тип печати, обрезчик, размер бумаги, отступы, кол-во бирок и т.д.) которые мы настроили до этого момента через GUI программы | ||
+ | {{:godex9.png?nolink&800|}} | ||
+ | * Теперь необходимо определиться какую информацию об услуге будем выводить на бирке. В нашем примере мы будем отображать: название склада приёма, даты приёма/выдачи, номер бирки, штрихкод бирки, имя клиента, номер заказа и название услуги. | ||
+ | * Помещаем в область печати настроенный шрифт с текстом "1234567890123..." что бы гарантированно мы зашли за видимую область печати бирки (в будущем мы будем считать сколько символов помещается в одну одну строчку выбранным размером шрифта. | ||
+ | {{:godex10.png?nolink&800|}} | ||
+ | * Изменяем размер шрифта которым мы будем печатать. Например, в пример мы будем печатать название склада мелким шрифтом размером всего 8 у.е. | ||
+ | {{:godex11.png?nolink&400|}} | ||
+ | * Дальше аналогичным образом добавляем все необходимые строчки нашей бирки с нужными размерами таким образом что бы все красиво разместилось и влезло. Смотреть промежуточный результат можно после нажатия на кнопку "Экспортировать" | ||
+ | {{:godex12.png?nolink&800|}} | ||
+ | * ШК на бирку добавляется немного иначе. Чаще всего мы используем ШК Barcode128 (например, 280000000000002320). Его можно добавить штатными средствами. Для того что бы сэкономить место можно отключить печать символов самого ШК. Для этого на вкладке “Понятный читаемый стиль” отключаем заголовок. | ||
+ | {{:godex13.png?nolink&800|}}\\ | ||
+ | {{:godex14.png?nolink&400|}} | ||
+ | * Для того что бы проверить наш шаблон необходимо печатаем получившуюся бирку. Если мы используем автоматический обрезчик он также должен сработать. | ||
+ | {{:godex15.png?nolink&800|}} | ||
+ | * В итоге из принтера должно показаться нечто похожее на наш макет. На нашей бирке мы использовали 3 размера шрифта: 8, 10 и 16. Теперь необходимо посчитать сколько символов каждого размера у нас получилось. В нашем примере получились следующие цифры: для размера 8 у нас вышло 27 символов, для размера 10 у нас вышло 22 символа а для размера 16 всего 14 символов. На этом создание шаблона для нашей бирки подошло к концу. | ||
+ | {{:godex16.jpg?nolink&800|}} | ||
+ | |||
+ | ===== Создание процедуры по генерации бирки используя заранее подготовленный шаблон ===== | ||
+ | * Запускаем программу IBExpert и проводим скрипт по созданию/изменению процедуры генерации EZPL шаблона нашей будущей бирки. Входным параметром процедуры всегда будет внутренний номер услуги. Запросом необходимо вытащить из базы данных информацию которую мы в будущем планируем отображать на бирке. | ||
+ | <code sql> | ||
+ | CREATE OR ALTER procedure SP_GET_CUSTOM_EZPL_LABEL ( | ||
+ | DOS_ID D_ID_INT64) | ||
+ | returns ( | ||
+ | EZPL_TEXT D_BLOB) | ||
+ | as | ||
+ | declare variable SCLAD_KREDIT_NAME D_STR_100; | ||
+ | declare variable DATE_BEG D_STR_50; | ||
+ | declare variable DATE_END D_STR_12; | ||
+ | declare variable BARCODE_READ D_STR_25; | ||
+ | declare variable BARCODE D_STR_25; | ||
+ | declare variable DOC_NUM D_STR_50; | ||
+ | declare variable CLIENT_NAME D_STR_100; | ||
+ | declare variable TOVAR_NAME D_STR_500; | ||
+ | begin | ||
+ | |||
+ | select | ||
+ | s.name, | ||
+ | lpad(extract(day from d.doc_date), 2, '0') || '.' || lpad(extract(month from d.doc_date), 2, '0'), | ||
+ | lpad(extract(day from dor.date_out), 2, '0') || '.' || lpad(extract(month from dor.date_out), 2, '0'), | ||
+ | dos.barcode_read, | ||
+ | dos.barcode, | ||
+ | c.name, | ||
+ | d.doc_num, | ||
+ | tt.name as tovar_name | ||
+ | from doc_order_services dos | ||
+ | left join docs_order dor on dor.id = dos.doc_order_id | ||
+ | left join docs d on d.doc_id = dor.doc_id | ||
+ | left join tovars_tbl tt on tt.TOVAR_ID = dos.tovar_id | ||
+ | left join contragents c on c.contr_id = d.contragent_id | ||
+ | left join sclads s on s.id = dor.sclad_kredit_id | ||
+ | where dos.id = :dos_id | ||
+ | into :sclad_kredit_name, :date_beg, :date_end, :barcode_read, :barcode, :client_name, :doc_num, :tovar_name; | ||
+ | |||
+ | select res from sp_ezpl_print_string(:sclad_kredit_name, 27, 1) into :sclad_kredit_name; | ||
+ | select res from sp_ezpl_print_string(:date_beg||' '||:date_end, 22, 1) into :date_beg; | ||
+ | select res from sp_ezpl_print_string(:barcode_read, 14, 1) into :barcode_read; | ||
+ | select res from sp_ezpl_print_string(:client_name, 27, 1) into :client_name; | ||
+ | select res from sp_ezpl_print_string(:doc_num, 22, 1) into :doc_num; | ||
+ | select res from sp_ezpl_print_string(:tovar_name, 22, 0) into :tovar_name; | ||
+ | |||
+ | ezpl_text = ''; | ||
+ | |||
+ | suspend; | ||
+ | end | ||
+ | </code> | ||
+ | * В переменную ezpl_text вставляем наш результат экспорта бирки на предыдущем этапе | ||
+ | {{:godex17.png?nolink&800|}} | ||
+ | * Меняем наш текст ("1234567890123...") на реальный текст, который будет отображаться. Все фразы выводимые на бирке мы проводим через процедуру sp_ezpl_print_string. Данная процедура добавляет необходимое кол-во пробелов вначале печатаемого текста в зависимости от типа выравнивания и кол-во символов помещаемых в строке. Первый параметр данной процедуры - собственно желаемая фраза, второй - кол0во символов в строке (в примере мы печатаем склад приёма самым мелким шрифтов, у которого помещается 27 символов в одну строчку), третий - тип выравнивания (0 - выровнять по левому краю, 1 - выровнять по центру, 2 - выровнять по правому краю) | ||
+ | <code sql> | ||
+ | select res from sp_ezpl_print_string(:sclad_kredit_name, 27, 1) into :sclad_kredit_name; | ||
+ | </code> | ||
+ | {{:godex18.png?nolink&800|}} | ||
+ | * Сохраняем получившуюся процедуру и проводим ее в модуле Agbis Updater.exe что бы репликация разнесла данную процедуру по всем другим репликационным базам. | ||
+ | |||
+ | ===== Проверка созданного шаблона и бирки ===== | ||
+ | * В IBExpert открываем таблицу DOC_ORDER_SERVICES, копируем внутренний номер услуги и выполняем запрос к базе данных | ||
+ | <code sql>select * from sp_get_custom_ezpl_label(:dos_id)</code> | ||
+ | * Результат выполнения процедуры вставляем в новую бирку (что бы не затереть по ошибке наш созданный шаблон).Импортируем EZPL команду в визуальную бирку. Производим печать нашей бирки. Если результат устраивает то приступаем к настройке Meta, если результат требует корректировки то возвращаемся к правке EZPL шаблона после чего модифицируем нашу процедуру sp_get_custom_ezpl_label | ||
+ | {{:godex20.jpg?nolink&800|}} | ||
+ | |||
+ | ===== Редактирование локальной настройки для модуля Агбис Приёмка===== | ||
+ | * В нужном комплекте локальных настроек изменяем "Тип квитанции" на "Godex EZPL Custom" | ||
+ | {{:godex21.png?nolink&800|}} | ||
+ | |||
+ | =====Настройка кодировки при печати бирки===== | ||
+ | По умолчанию на принтере Godex установлена кодировка **cp1251**. Если требуется начать работать с другой кодировкой, то в процедуру необходимо добавить специальную команду которая выставить значение кодировки: **^XSET,CODEPAGE,14** | ||
+ | Список всех поддерживаемых кодировок | ||
+ | <code sql>0: 'cp850' | ||
+ | 1: 'cp852' | ||
+ | 2: 'cp437' | ||
+ | 3: 'cp860' | ||
+ | 4: 'cp863' | ||
+ | 5: 'cp865' | ||
+ | 6: 'cp867' | ||
+ | 7: 'cp861' | ||
+ | 8: 'cp862' | ||
+ | 9: 'cp855' | ||
+ | 10: 'cp856' | ||
+ | 11: 'cp737' | ||
+ | 12: 'cp851' | ||
+ | 13: 'cp869' | ||
+ | 14: 'cp1252' | ||
+ | 15: 'cp1250' | ||
+ | 16: 'cp1251' | ||
+ | 17: 'cp1253' | ||
+ | 18: 'cp1254' | ||
+ | 19: 'cp1255' | ||
+ | 20: 'cp1257'</code> | ||
+ | |||
+ | Для России должна использоваться кодировка cp1251, а для Германии кодировка cp1252 | ||
+ | |||
+ | ===== Примеры готовых процедур для бирок ===== | ||
+ | * Бирка 1 <code sql>CREATE OR ALTER procedure SP_GET_CUSTOM_EZPL_LABEL ( | ||
+ | DOS_ID D_ID_INT64) | ||
+ | returns ( | ||
+ | EZPL_TEXT D_BLOB) | ||
+ | as | ||
+ | declare variable SCLAD_KREDIT_NAME D_STR_100; | ||
+ | declare variable DATE_BEG D_STR_50; | ||
+ | declare variable DATE_END D_STR_12; | ||
+ | declare variable BARCODE_READ D_STR_25; | ||
+ | declare variable BARCODE D_STR_25; | ||
+ | declare variable DOC_NUM D_STR_50; | ||
+ | declare variable CLIENT_NAME D_STR_100; | ||
+ | declare variable TOVAR_NAME D_STR_500; | ||
+ | begin | ||
+ | |||
+ | /* | ||
+ | Бирка для печати на Godex на бесконечной чековой ленте без отрезщика и без разделителя бирок | ||
+ | Бирка размером 58*30 (ширина ленты 58 мм, высота бирки 30 мм) | ||
+ | На бирке выводится инфомрация: | ||
+ | * Склад приема (1 строка) | ||
+ | * Дата начала обработки/дата конца обработки (2 строка) | ||
+ | * Номер бирки (3 строка) | ||
+ | * ШК бирки (4 строка) | ||
+ | * Имя клиента (5 строка) | ||
+ | * Номер заказа (6 строка) | ||
+ | * Название услуги ( 7 строка) | ||
+ | */ | ||
+ | |||
+ | select | ||
+ | s.name, | ||
+ | lpad(extract(day from d.doc_date), 2, '0') || '.' || lpad(extract(month from d.doc_date), 2, '0'), | ||
+ | lpad(extract(day from dor.date_out), 2, '0') || '.' || lpad(extract(month from dor.date_out), 2, '0'), | ||
+ | dos.barcode_read, | ||
+ | dos.barcode, | ||
+ | c.name, | ||
+ | d.doc_num, | ||
+ | tt.name as tovar_name | ||
+ | from doc_order_services dos | ||
+ | left join docs_order dor on dor.id = dos.doc_order_id | ||
+ | left join docs d on d.doc_id = dor.doc_id | ||
+ | left join tovars_tbl tt on tt.TOVAR_ID = dos.tovar_id | ||
+ | left join contragents c on c.contr_id = d.contragent_id | ||
+ | left join sclads s on s.id = dor.sclad_kredit_id | ||
+ | where dos.id = :dos_id | ||
+ | into :sclad_kredit_name, :date_beg, :date_end, :barcode_read, :barcode, :client_name, :doc_num, :tovar_name; | ||
+ | |||
+ | select res from sp_ezpl_print_string(:sclad_kredit_name, 27, 1) into :sclad_kredit_name; | ||
+ | select res from sp_ezpl_print_string(:date_beg||' '||:date_end, 22, 1) into :date_beg; | ||
+ | select res from sp_ezpl_print_string(:barcode_read, 14, 1) into :barcode_read; | ||
+ | select res from sp_ezpl_print_string(:client_name, 27, 1) into :client_name; | ||
+ | select res from sp_ezpl_print_string(:doc_num, 22, 1) into :doc_num; | ||
+ | select res from sp_ezpl_print_string(:tovar_name, 22, 0) into :tovar_name; | ||
+ | |||
+ | ezpl_text = '^Q30,0,0 | ||
+ | ^W58 | ||
+ | ^H8 | ||
+ | ^P1 | ||
+ | ^S4 | ||
+ | ^AD | ||
+ | ^C1 | ||
+ | ^R0 | ||
+ | ~Q+0 | ||
+ | ^O0 | ||
+ | ^D0 | ||
+ | ^E18 | ||
+ | ~R255 | ||
+ | ^L | ||
+ | Dy2-me-dd | ||
+ | Th:m:s | ||
+ | Dy2-me-dd | ||
+ | Th:m:s | ||
+ | ATA,0,0,23,23,0,0,A,0,'||sclad_kredit_name||' | ||
+ | ATA,0,27,28,28,0,0,A,0,'||date_beg||' | ||
+ | ATA,0,59,45,45,0,0,A,0,'||barcode_read||' | ||
+ | BQ,98,110,2,6,39,0,0,'||barcode||' | ||
+ | ATA,0,149,23,23,0,0,A,0,'||client_name||' | ||
+ | ATA,0,176,28,28,0,0,A,0,'||doc_num||' | ||
+ | ATA,0,208,28,28,0,0,A,0,'||tovar_name||' | ||
+ | E | ||
+ | '; | ||
+ | |||
+ | suspend; | ||
+ | end</code> | ||
+ | {{:godex20.jpg?nolink&800|}} |