NDemia Новости CashMatic Рубли Форум

Развёрнутый


Пример шаблона при установке программного продукта NDemia CashMatic KioskBrowser размещается в файле "\Program Files\NDemia\CashMatic\PrintTemplates\Развёрнутый.TXT"
В этом примере показан достаточно сложный шаблон, используются практически все
возможности языка описания шаблонов NDemia CashMatic. Если Вам нужны начальные сведения о разработке шаблонов, смотрите более простые примеры: "Простой" и "Торговый".

%bNDemia CashMatic: %(загол)%b
%d %t
%{если(%(ид)):Код платежа: %(id)
%}%{прод:%(текств)%(номер). %(назв)	%(цена)	*%(колво)	= %(стоим)
%i%(текстн)%i
%}%bИтого%b %(итого) руб.
%{cash:%(шрифт2)Оплачено наличными %m руб. через терминал %(терминал)
%{debt:При получении заказа покупатель должен доплатить %(долг) руб.
%}%{change:Покупателю сдача %(сдача) руб.
%}%}%{nocash:Заказ не оплачен
%}%{если(%(перем:ТелефонСлужбыПоддержки)):%{прим:может быть не задан
%}Телефон службы поддержки: %(перем:ТелефонСлужбыПоддержки)
%}
%{фискал:Фискальный режим
%{if(%o):%(штрихкод)%(код)%}%}%{нефискал:%{if(%(код)):Код документа: %o%}%}
(•) Пример из комплектации программного продукта может незначительно отличаться от этого текста

При печати:
  • %bNDemia CashMatic: ...%b - выделение жирным шрифтом строки "NDemia CashMatic: ..." (не действует на фискальном регистраторе);
  • %(загол) заменяется на CashMatic.Print.Receipt.Title;
  • %d заменяется на дату печати чека (в формате краткой даты);
  • %t заменяется на время печати чека (в формате времени, без секунд);
  • %(ид)/%(id) заменяется на значение CashMatic.Print.Receipt.Id;
  • строка "Код платежа: ..." (блок %{если(%(ид)):Код платежа: %(id)%}) печатается только в случае, если чек имеет непустой номер или идентификатор (задано свойство CashMatic.Print.Receipt.Id);
  • блок %{прод:...%} при нефискальной печати повторяется для каждой позиции продажи, при создании фискального чека фискальный регистратор сам форматирует строки продажи, текст фискального чека вставляется на место блока %{прод:...%};
  • внутри блока %{прод:...%} для каждой позиции продажи (элемента списка продажи - см. объект CashMaticSaleItem):
  • %bИтого%b - выделение жирным шрифтом слова "Итого" (не действует на фискальном регистраторе);
  • %(итого) заменяется на CashMatic.Print.Receipt.Total;
  • блок %{cash:...%} (строка "Оплачено ... руб. через терминал ...") печатается только в случае, если были приняты какие-либо наличные;
  • %(шрифт2) - выбор шрифта №2 (по таблице прошитых шрифтов используемого оборудования) действует только на фискальном регистраторе (обратите внимание, указание шрифта работает только в первой позиции выходной строки, хотя в шаблоне эта позиция может быть сдвинута предшествующими синтаксическими конструкциями);
  • %m заменяется на значение CashMatic.Print.Receipt.Cash (в формате денежной суммы);
  • %(терминал) заменяется на имя терминала, заданное в Панели управления NDemia CashMatic;
  • блок %{debt:...%} (строка "При получении заказа покупатель должен доплатить ...") печатается только в случае, если при приёме платежа принято наличных меньше итоговой стоимости чека (см. Чек по шаблону, см. свойство CashMatic.Print.Receipt.Debt);
  • %(долг) заменяется на CashMatic.Print.Receipt.Debt (в формате денежной суммы);
  • блок %{change:...%} (строка "Покупателю сдача ...") печатается только в случае, если при приёме платежа принято наличных больше итоговой стоимости чека (см. Чек по шаблону, см. свойство CashMatic.Print.Receipt.Change);
  • %(сдача) заменяется на CashMatic.Print.Receipt.Change (в формате денежной суммы);
  • блок %{nocash:...%} (строка "Заказ не оплачен") печатается только в случае, если при приёме платежа наличных принято не было (принципиально возможна печать и нулевых чеков, т.е. без приёма наличных);
  • строка "Телефон службы поддержки: ..." (блок %{если(%(перем:ТелефонСлужбыПоддержки)): ... %}) печатается только в случае, если в текущем платёжном сеансе переменная "ТелефонСлужбыПоддержки" имеет непустое значение (был сделан вызов CashMatic.Session.AddProp("ТелефонСлужбыПоддержки", "..."));
  • %(перем:ТелефонСлужбыПоддержки) - значение переменной "ТелефонСлужбыПоддержки" из текущего платёжного сеанса (как CashMatic.Session.GetProp("ТелефонСлужбыПоддержки"));
  • блок %{фискал:...%} (строка "Фискальный режим" и последующий опциональный штрих-код) отображается только при печати фискального чека на фискальном регистраторе;
    • %o, %(код) - заменяется на код документа, назначенный чеку (CashMatic.Print.Receipt.Code);
    • %(штрихкод) - режим печати штрих-кода, для всей строки, действует только на фискальном регистраторе (обратите внимание, выбор режима штрих-кода работает только в первой позиции выходной строки, хотя в шаблоне эта позиция может быть сдвинута предшествующими синтаксическими конструкциями);
    • строка со штрих-кодом (блок %{if(%o):%(штрихкод)%(код)%}) печатается только в случае, если чеку назначен непустой номер документа (задано свойство CashMatic.Print.Receipt.Code);
    • код документа на фискальном регистраторе печатается как штрих-код (задано конструкцией "%(штрихкод)%(код)");

  • блок %{нефискал:...%} обрабатывается только при нефискальной печати;
    • строка "Код документа: ..." (блок %{if(%(код)):Код документа: %o%}) печатается только в случае, если чеку назначен непустой номер документа (задано свойство CashMatic.Print.Receipt.Code);
    • код документа при нефискальной печати отображается цифрами.

Полный список возможных подставляемых значений: см. Макроимена.
Полный список возможных типов блоков: см. Макроблоки.
Сведения о форматах данных: см. Форматирование данных.
Сведения об управлении шрифтами символов: см. Атрибуты шрифта и Выбор шрифта строки.

Для печати чека по этому шаблону прикладная программа (javascript внутри HTML-страницы) должна задать свойства Title, Id и Cash объекта CashMatic.Print.Receipt, в список продажи (объект CashMatic.Print.Receipt.SaleItems) нужно добавить хотя бы один элемент (см. объект CashMaticSaleItem), для каждого добавленного элемента нужно указать свойства Name, Price и Quantity (опционально можно ещё TextAbove и TextBelow).
Опционально могут быть заданы свойство CashMatic.Print.Receipt.Code и переменная платёжного сеанса "ТелефонСлужбыПоддержки" (см. метод CashMatic.Session.AddProp()).
Кроме того, нужно указать используемый шаблон и вызвать печать:

CashMatic.Print.Receipt.Title="Пример приёма платежа";
CashMatic.Print.Receipt.Id="112";
CashMatic.Print.Receipt.Cash=50;
var Sale1 = CashMatic.Print.Receipt.SaleItems.Add();
Sale1.Name = "Пример 1";
Sale1.Price = 100;
Sale1.Quantity = 1;
var Sale2 = CashMatic.Print.Receipt.SaleItems.Add();
Sale2.Name = "Пример 2";
Sale2.Price = 500;
CashMatic.Print.Receipt.Code="200000000001"; //опционально
CashMatic.Session.AddProp("ТелефонСлужбыПоддержки", "00000000"); //опционально
CashMatic.Print.Receipt.Template="Развёрнутый.txt";
CashMatic.Print.PrintOut();	//при ошибке печати возвращает FALSE
Сведения об объекте CashMatic.Print и других объектах печати: см. Объекты печати.
Другие примеры подготовки данных для печати чека по шаблону:

тел. +7-(916)-129-26-84 (C)opyright: NDemia Ltd, Москва, 2006..2024 ndemia@ndemia.com