Подключаемый принтер Godex должен работать в одной локальной сети с компьютером на котором будет создаваться бирка
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
SELECT res FROM sp_ezpl_print_string(:sclad_kredit_name, 27, 1) INTO :sclad_kredit_name;
SELECT * FROM sp_get_custom_ezpl_label(:dos_id)
По умолчанию на принтере Godex установлена кодировка cp1251. Если требуется начать работать с другой кодировкой, то в процедуру необходимо добавить специальную команду которая выставить значение кодировки: ^XSET,CODEPAGE,14 Список всех поддерживаемых кодировок
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'
Для России должна использоваться кодировка cp1251, а для Германии кодировка cp1252
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