Вводная информация

Практически все печатные документы, формируемые на станции R-Keeper v6, представляют из себя макеты собственного формата (*.FRM), которые можно редактировать с помощью специального приложения.

Модификация печатной формы может потребоваться для следующих задач:

  • внеcение изменений в макет печатной формы (размещение элементов формы, добавление/удаление полей и т.д.)
  • добавление в макет пользовательских переменных для реализации нестандартных задач
  • локализация печатных форм на другой язык

Печатные формы расположены в подкаталоге \FORMS кассового клиента и представлены в виде файлов с расширением *.FRM


Примечание: Некоторые печатные документы не могут быть отредактированы самостоятельно - ресурсы для их модификации находятся либо в ядре системы либо в файле  локализации (например, RUSSIAN.LNG). В данном документе работа с такими печатными документами не рассматривается - для их модификации необходимо оформить заявку через трекер.


Редактор печатных форм

Для редактирования печатных форм используется специальное приложение - FEDITOR.EXE (далее FEDITOR)

Приложение входит в состав менеджерской части RK6 и для запуска требует единственной библиотеки descript.dll.

При запуске FEDITOR предлагается ввести пароль -  механизм защиты не является функциональным, пароль можно не указывать и просто нажать кнопку "OK".

После запуска FEDITOR открывается основное рабочее окно приложения - для открытия и редактирования макета необходимо перейти в меню File ⇒ Open и указать путь к файлу макета (*.FRM).

После открытия макета в приложении становятся доступны элементы управления:

Рис. Рабочее окно приложения FEDITOR с загруженной печатной формой


Основные элементы управленияLink to Основные элементы управления

  • в разделе Section расположен выбор секций печатной формы, с помощью кнопок Previous и Next можно перемещаться между секциями:


  • в разделе Item - Line находятся элементы для работы с объектами печатной формы - линиями и переменными, с помощью кнопки Preview можно просмотреть общий вид печатного документа:


  • в разделе Variables отображаются доступные для выбранной секции системные (System) и пользовательские (User defined) переменные:


  • в основном рабочем разделе находится редактор макета:


Правила и ограничения редактораLink to Правила и ограничения редактора

При редактирование печатной формы следует учитывать следующие правила:

  • макет состоит из линий и размещенных на них объектов
  • для каждой секции доступны только определенные системные и/или пользовательские переменные - использование переменных за пределами секции недопускается
  • объекты (системные или пользовательские) могут быть добавлены только на существующую (предварительно размещенную) линию


Параметры макетаLink to Параметры макета

Для входа в свойства макета необходимо в редакторе открыть форму макета и перейти в меню File  Options:

Рис. Свойства макета без поддержки слиповой (подкладнойпечати

Рис. Свойства макета с поддержкой слиповой (подкладной) печати (FICHECK.FRM)


В свойствах макета определены следующие параметры:

  • Width (in symbols) - ширина печатной формы в символах, по-умолчанию 40 символов
  • Type (Roll или Slip)  - тип макета: Roll - макет для печати на ролом принтере, Slip - макет для печати на слиповом (подкладном) принтере
  • Height (in lines) - высота печатной формы, доступно только для макетов c поддержкой печати на слиповом принтере (Slip)


Ширина печатной формы (Width) определяется возможностями принтера - для стандартного размера бумаги 80 мм устанавливается ширина печати в 40 символов.

Высота печатной формы (Height) определяется возможностями слипового принтера и размером бумажного бланка (слипа), на котором печатается чек.


Редактирование печатной формыLink to Редактирование печатной формы

Для добавления линии необходимо:

  • выбрать на форме линию, ниже которой необходимо разместить новую линию
  • выбрать на панели задач в разделе Line операцию Add - линия автоматически добавится на печатную форму:


  • операция Insert выполняет то же действие, что и Add , только новая линия будет добавлена выше выбранной линии


Для удаления линии необходимо:

  • выбрать на форме линию, которую необходимо удалить
  • выбрать на панели задач в разделе Line операцию Delete - линия будет автоматически удалена без предварительного запроса


Для добавления нового объекта есть два варианта:

Вариант №1

  • выбрать на форме линию, на которую необходимо добавить объект
  • выбрать на панели задач в разделе Item операцию Add
  • в окне редактирования объекта заполнить параметры (см. ниже):

Примечание: Размер поля переменной (Width) автоматически устанавливается в значение, максимально доступное для выбранной линии


Вариант №2

  • в разделе Variables выбрать объект и "перетащить" его в окно редактора, поместив на линию


Для удаления объекта необходимо:

  • выбрать на форме объект, который необходимо удалить
  • выбрать на панели задач в разделе Item операцию Delete - объект будет автоматически удален без предварительного запроса


Системные переменныеLink to Системные переменные

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

В редакторе нельзя добавить новую или изменить существующую системную переменную - при необходимости модификации можно использовать пользовательские переменные и/или функции.


Пользовательские переменныеLink to Пользовательские переменные

Пользовательские переменные и функции, как и системные переменные, имеют ограниченную область применения - их можно использовать только в пределах той секции, где они определены.

Пользовательские переменные могут быть составлены на основе простых арифметических операций с возможностью задействовать в формулах системные переменные, пользовательские переменные и функции, доступные в данной секции.

Пользовательские функции могут быть двух типов (см. ниже) и для вычисления результата использовать системные переменные, пользовательские переменные и функции, доступные в данной секции.


Для работы с переменными и функциями в разделе "User defined" доступны следующие операции (по правому клику мыши):

  • Add Variable - добавление новой пользовательской переменной
  • Add Function - добавление новой пользовательской функции
  • Edit - редактирование выбранной пользовательской переменной или функции
  • Delete - удаление выбранной пользовательской переменной или функции


Для редактирования переменной или функции необходимо выбрать ее в списке, нажать правой кнопкой мыши и выбрать операцию Edit - окно редактирования переменной и функции отличается.

Рассмотрим использование пользовательских переменных и функций на примере макета предварительного чека (FCHECK.FRM) - в секции  Dish Line определены переменные и функции для возможности не выводить в печатной форме строки с блюдами, сумма которых равна нулю.

Открываем макет FCHECK.FRM в редакторе и выбираем секцию Dish Line:


В разделе "User defined" находятся пользовательские объекты, которые могут использоваться в макете:

  • $DISH_SUM - пользовательская переменная для вычисления суммы блюда
  • $DNAME - пользовательская функция для альтернативного вывода названия блюда
  • $QNT -  пользовательская функция для альтернативного вывода кол-ва блюда
  • $DSUM - пользовательская функция для альтернативного вывода суммы блюда
  • $ANAME - пользовательская функция для альтернативного вывода суммы блюда


Выбираем в списке переменную $DISH_SUM и вызываем операцию Edit:


В окне редактирования переменной доступны следующие поля:

  • Name - название переменной
  • Formula - формула для расчета переменной
  • Availuable variables - доступные переменные и формулы, которые могут быть задействованы в расчетах переменной


Примечание: В поле Availuable variables доступны только числовые переменные


В поле Formula можно использовать простые арифметические операции - сложение, вычитание, умножение, деление. Допускается группирование операций в круглых скобках (...), например (1+3)/2

Пользовательская переменная $DISH_SUM будет использована в формулах в качестве условия, что блюдо имеет нулевую стоимость.

В поле Formula переменной $DISH_SUM  рассчитывается стоимость блюда через операцию умножения кол-ва порций и стоимости блюда: $QUANTITY*$PRICE


Далее рассмотрим создание/редактирование пользовательской функции - выбираем в списке функцию $DNAME и вызываем операцию Edit:


В окне редактирования функции доступны следующие разделы и поля:

  • Name - название функции
  • Type - тип функции (см. ниже)
  • Раздел для определения расчета значения функции


Тип (Type) определяет метод расчета функции:

  • IF - значение функции зависит от условия, определяемого значением другой переменной или функции
  • Length - функция возвращает значение, равное длине переменной или функции


Важно: Условие IF возращает истину (True) только в том случае, если значение переменной строго больше нуля - если значение 0 или отрицательное, возращается False.


В рассматриваемом примере функция $DNAME имеет тип IF, т.е. зависит от условия, определяемого значением переменной $PRICE.

Словесно формулу для функции $DNAME можно представить след. образом:

Если (IF) переменная $PRICE больше нуля (т.е. стоимость блюда не нулевая), тогда (THEN) функция $DNAME возвращает значение системной переменной $DISH_NAME - в других случаях (ELSE) функция  $DNAME возвращает "пустое" значение (т.е. на чеке название блюда не печатается)


Функции $QNT, $DSUM и $ANAME реализованы аналогичным образом - их значения зависят от переменной $PRICE, которая определяет стоимость блюда.


Назначение печатных форм

Наименование макетаНазначениеПримечание
BLNSREP.FRMСистемный балансовый отчет
BLNSWAIT.FRMБалансовый отчет по официанту
CARDPUT.FRMВнесение денег на карту
CARDTAKE.FRMИзъятие денег с карты
CASHOPER.FRMКраткий отчет по кассовым операциям
CASHPUT.FRMВнесение денег в кассу
CASHTAKE.FRMИзъятие денег с кассы
CCHECK.FRMЧек при оплате банковской картой
CONSREP.FRMОтчет по консумации
CREMOVE.FRMУдаление чека
CRESTORE.FRMВосстановление чека
DELREP.FRMОтчет по удаленным чекам
DISCREP.FRMСкидки / Наценки на чеки
EXPREP.FRMОбщий расход блюд
EXPREPCM.FRMОбщий расход блюдформа аналогична EXPREP.FRM
FCHECK.FRMФинальный чек

Может иметь несколько модификаций: 

  • FCHECK_A.FRM
  • FCHECK_B.FRM и т.д.
FCREMOVE.FRMУдаление чека
FCRESTOR.FRMВосстановление чека
FICHECK.FRMФинальный чекПечать нефискального финального чека
LCLOSE.FRMОтчет закрытия дня станции
LDSREP.FRMОтчет по консумации
MONEY.FRMОбщая выручка
PCALLCH.FRM-Форма на основе FCHECK.FRM
PCCCHECK.FRMКонтрольный чек для карты
PCONSREP.FRM

Отчет по консумации


PCPCHECK.FRMПречек для карты на входе
PDISCREP.FRMОтчет по персональным скидкам
PEXPREP.FRMОбщий расход блюд по категориям
PMONEY1.FRMВыручка по официантам
PMONEY2.FRMВыручка по кассиpам
PMONEY3.FRMВыручка по станциям
PMONEY4.FRMВыручка по подpазделениям
SDREP.FRMОтчет по специальным блюдам
SERVPRN.FRMСервис-печать
SERVREMN.FRMСервис-печать: напоминание
TIMEREP.FRMПочасовой отчет
VOIDSREP.FRMОтказы из чеков
XREPORT.FRMX-отчет
ZREPORT.FRMКассовый балансовый отчет