Шаблоны ценников и этикеток для Frontol Manager

Frontol Manager начиная с версии 1.1.0 поддерживает печать ценников и этикеток. Для этого используются шаблоны – файлы, описывающие содержимое ценника/этикетки. Эти файлы можно загрузить в справочник шаблонов ценников и этикеток и использовать в заданиях на печать. Ниже описано что из себя представляет шаблон и приведены примеры шаблонов.

Синтаксис шаблона

Шаблон представляет собой текст в формате XHTML 1.0 или 1.1 (HTML не допускается). Он должен содержать 2 следующих тега:

<meta name=“pricetag-width” content=“%size%” />

<meta name=“pricetag-height” content=“%size%” />

которые сообщают о ширине и высоте шаблона. Допустимый формат %size% такой: %целое число%%единица измерения%. Число и единица измерения могут быть разделены пробелами. Ниже представлен список поддерживаемых единиц измерения:

  • in - дюйм
  • cm - см (1in = 2.54cm)
  • mm - мм (1in = 25.4mm)
  • pt - пункт (1in = 72pt)
  • pc - pica (1in = 6pc)
  • px - пиксель. Соотношение между px и перечисленными выше размерностями определяется разрешением печати.

Например:

<meta name=“pricetag-width” content=“5 cm” />

<meta name=“pricetag-height” content=“300px” />

Здесь ширина шаблона выставлена в 5 сантиметров, высота – 300 пикселей. Обратите внимание, что в этом случае при изменении разрешения печати ширина напечатанного ценника/этикетки всегда будет равна 5 см, а высота будет варьироваться.

 

Работа с JavaScript-кодом

Для получения данных о продукте, для которого печатается ценник или этикетка, а также для вывода штрихкода шаблоны  поддерживают код, написанный на языке JavaScript.

Для добавления кода в шаблон следует использовать тег script. При этом рекомендуется также использовать HTML-комментарии внутри этого тега во избежание проблем с синтаксисом шаблона. Например:

<script>

<!–

// Здесь следует писать JavaScript-код

//–>

</script>

При печати ценника или этикетки все теги script будут изъяты из шаблона и заменены на то, что было выведено этим кодом с помощью функций print и barcode (см. ниже).

Следует помнить, что шаблон ценника/этикетки – это не web-страница и JavaScript не поддерживает такие объекты как document или window. JavaScript-код следует использовать для получения информации из базы данных, для вывода этой информации в ценнике/этикетке и для печати штрихкода. Все эти возможности описаны ниже.

Предопределенные переменные

Для идентификации продукта, ценник или этикетке которого должна быть напечатана с использованием данного шаблона в JavaScript-коде можно использовать следующие предопределенные переменные:

  • wareId - ID продукта (значение поля ID таблицы SPRT)
  • aspectID - ID разреза (значение поля ID таблицы MO_SPRTASPVALUE)

Для идентификации самого шаблона предопределена переменная templateCode - код шаблона в справочнике.

Функция print

Функция print используется для вывода строки. Например, следующий код:

print(“Hello, world!”);

Выведет строку Hello, world! на месте этого скрипта. Другими словами, следующий шаблон ценника:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="pricetag-width" content="5сm" />
<meta name="pricetag-height" content="3сm" />
</head>
<body>
<script>
<--
print("Hello, World!");
//-->
</script>
</body>
</html>

При печати будет преобразован таким образом:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="pricetag-width" content="5сm" />
<meta name="pricetag-height" content="3сm" />
</head>
<body>
Hello, World!
</body>
</html>

 

Функция barcode

Функция barcode используется для вывода в ценнике/этикетки штрихкода. Ее определение имеет следующий вид:
void barcode(string text, int type=EAN13, int scale=1, int height=50, int borderWidth=0, int whiteSpaceWidth=0,string backgroundColor="#ffffff"string foregroundColor="#000000"bool hideText=false, options = {});

 

  • text - значение, которое кодируется штрихкодом;
  • type - тип штрихкода (см. ниже).
  • scale - масштаб штрихкода.
  • height - высота штрихкода (не путать с высотой изображения штрихкода!).
  • borderWidth - ширина бордюра.
  • whiteSpaceWidth - ширина отступов.
  • backgroundColor - цвет фона в формате #RRGGBB.
  • foregroundColor - цвет штрихкода и текста в формате ##RRGGBB.
  • hideText - флаг, определяющий будет ли скрыт текст под штрихкодом.
  • options - объект, содержащий дополнительные атрибуты для тега img.

В качестве значения аргумента type можно использовать одну из констант:

  • AUSPOST
  • AUSREDIRECT
  • AUSREPLY
  • AUSROUTE
  • AZTEC
  • C25IATA
  • C25IND
  • C25INTER
  • C25LOGIC
  • C25MATRIX
  • CODABAR
  • CODABLOCKF
  • CODE11
  • CODE128
  • CODE128B
  • CODE16K
  • CODE39
  • CODE49
  • CODE93
  • DAFT
  • DATAMATRIX
  • DPIDENT
  • DPLEIT
  • EAN128
  • EAN8
  • EAN13
  • EAN14
  • EXCODE39
  • FIM
  • FLAT
  • HIBC_128
  • HIBC_39
  • HIBC_AZTEC
  • HIBC_BLOCKF
  • HIBC_DM
  • HIBC_MICPDF
  • HIBC_PDF
  • HIBC_QR
  • ISBNX
  • ITF14
  • JAPANPOST
  • KIX
  • KOREAPOST
  • LOGMARS
  • MAXICODE
  • MICROPDF417
  • MICROQR
  • MSI_PLESSEY
  • NVE18
  • ONECODE
  • PDF417
  • PDF417TRUNC
  • PHARMA
  • PHARMA_TWO
  • PLANET
  • PLESSEY
  • POSTNET
  • PZN
  • QRCODE
  • RM4SCC
  • RSS14
  • RSS14STACK
  • RSS14STACK_OMNI
  • RSS_EXP
  • RSS_EXPSTACK

 

Функция barcode выводит изображение штрихкода в следующем формате:

<img src=“data:image/png;base64,… “ />

Пример использования:

1. Штрихкод EAN13.

barcode(’123456789012′);

2. Штрихкод EAN13 голубой на желтом фоне:

barcode(’123456789012′, EAN13, 1, 50, 0, 0, ‘#ffff00′, ‘#0000ff”);

3. Code39 в двойном размере:

barcode(‘ABCDEFG123456′, CODE39, 2);

4. Code39 в одинарном размере с шириной изображения равной 150px:

barcode(‘ABCDEFG123456′, CODE39, 1, 50, 0, 0,‘#ffffff’, ‘#000000’, false, {width: ‘150’});

 

Работа в базой данных

Для работы с БД используется глобальный объект db. Для выполнения SQL-запроса используется метод:

mixed query(string sql);

Т.к. работа с БД в JavaScript требуется только для получения информации о продукте, то разрешены лишь SQL-запросы типа SELECT. Запросы на добавление или обновление записей, удаление данных или таблиц и т.п.  выполнены не будут, а объект db будет содержать следующий текст последней ошибки при попытке их выполнить: «Небезопасный SQL-запрос: …».

Если в процессе выполнения запроса произошла обишка, метод возвращает пустое значение. Если же запрос выполнен и вернул что-то, то метод возвращает массив объектов, поля которых соответствуют полям таблицы.

Если произошла ошибка, то ее текст можно получить посредством метода:

string lastError();

Ниже приведен пример кода, демонстрирующий работу с БД.

 

var res = db.query('SELECT ID, NAME FROM SPRT');
if (db.lastError() == '')
{
for (k in res)
{
var obj = res[k];
print(obj.ID + ': ' + obj.NAME + '<br />\n');
}
}
else
{
print(db.lastError());
}

 

Рубрики Мастер класс · Таги

Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!

You must be logged in to post a comment.