мета-данные страницы
  •  

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
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|}}