Подключаемый принтер 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
Бирка 1 `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
Ths
Dy2-me-dd
Ths
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`