Директивы

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

Директивы начинаются с символа # и пишутся заглавными буквами (за исключением директивы #Barcode).

Таблица 4. Директивы печатных форм

ДирективаЗначение
#FORM ИмяФормы Задание имени документа, которое будет высвечиваться в списке печатаемых документов. Директива обязательно должна присутствовать в начале шаблона.
#ENDFORM Конец печатной формы. Директива обязательно должна присутствовать в конце шаблона.
// Однострочный комментарий. Текст, расположенный в строке после комментария, программа игнорирует.
#LANG

Двухбуквенное обозначение языка.

Например, #LANG MD — молдавский, #LANG RU — русский (по умолчанию)

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

  • #LANG RU — русский (по умолчанию).

  • #LANG UA — украинский.

  • #LANG MD — молдавский.

  • #LANG KZ — казахский.

#PORTRAIT #LANDSCAPE

Задают ориентацию ПФ, портретную или альбомную соответственно.

Если не задан ни один из этих параметров, то по умолчанию используется портретная ориентация.

#UNDERLINE {Символ подчеркивания}

Формат:

#UNDERLINE {Символ подчеркивания}

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

Например,

#UNDERLINE {*}

Адрес *отправителя* — В данном случае слово «адрес» не будет подчеркнуто, а «отправителя» будет.

#STRETCH {Символ растягивания} В фигурных скобках указывается символ или набор символов. Следующий за этим знаком символ будет растягивать строку. Если длина строки больше ширины страницы, то будет происходить не растягивание, а сжатие строки до размеров страницы.
#ENDSTRETCH Отменяет режим растягивания.
#PRINTPAGENUMBER

Печатать номера страниц.

Формат: #PRINTPAGENUMBER {расположение номера страницы}

В качестве атрибута директивы необходимо указать TOP или BOTTOM, а ПоГориз — LEFT, CENTER или RIGHT.

  • TOP — в верхней части страницы
  • BOTTOM — в нижней части страницы
  • LEFT — в левой части страницы
  • CENTER — по центру страницы
  • RIGHT — в правой части страницы

Например, #PRINTPAGENUMBER {BOTTOM RIGHT} — номера страниц будут напечатаны в правой нижней части страницы.

#ALIGN

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

  • Пробел слева от строки — выравнивание по правому краю.
  • Пробел справа от строки — выравнивание по левому краю.
  • Пробелы слева и справа от строки — выравнивание по центру.

Директива работает по умолчанию, если только не задана директива #DONTALIGN.

#DONTALIGN Отменяет выравнивание строки и печатает ее, как она есть.
#SPLIT {Символ разделителя}

Символ разделителя.

Формат: #SPLIT {Символ разделителя} (Ширина левой половины до разделителя)

В фигурных скобках указывается символ или набор символов разделителя. В обычных скобках указывается число, либо формула.

Например, #SPLIT {~|} (pw/2), где pw — Page Width(Ширина страницы)

#ENDSPLIT Отмена режима разделения страницы.
#ALIAS
  • Псевдонимы или синонимы переменных печатных форм.

    Например,

    #ALIAS $Am=$Amount;

    теперь вместо переменной $Amount можно использовать ее синоним $Am.

    При создании псевдонимов можно использовать формулы.

    Например,

    #ALIAS $weight=$Amount*$Attr356;

    В данном случае переменной $weight будет присвоено значение умножения количества на значение атрибута 356.

    Псевдонимы не должны совпадать с именами системных переменных или с именем рабочего параметра системы.

  • Заменители символов в печатных формах. В системе существует возможность задавать замены для символов, используемых в печатных формах, на любые другие символы. Одновременно можно производить замену одного символа только на один символ. При этом для директивы может быть задано несколько пар замены через точку с запятой.

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

    #ALIAS (заменяемый символ_1)=(заменяющий символ_1); (заменяемый символ_2)=(заменяющий символ_2);...; (заменяемый символ_n)=(заменяющий символ_n)

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

    #ALIAS ⌈ = . ; — = . ;

    В результате все символы ⌈ и — будут заменены на символ ".".

#NEWPAGE Принудительный переход на следующую страницу.
#TABLE

Начало таблицы и ее параметры. В фигурных скобках длины столбцов через точку с запятой.

Формат: #TABLE {Ширины столбцов} Параметры

Например,

#TABLE {;0;50;;4} — Если не указано число, то ширина столбца будет, как в печатной форме, если указан 0, то ширина этого столбца будет растягиваться на ширину страницы.

Параметры — значения GRID или SPACE

GRID — линия между позициями в документе.

SPACE — пустая строка между позициями в документе.

#ENDTABLE Конец таблицы.
#BODY Начало тела таблицы.
#N Номер позиции внутри #BODY, тела таблицы
#ENDBODY Конец тела таблицы.
#SUMI_P, #SUMD_P и #SUMM_P Суммы по столбцам на странице. Целое число, число с плавающей запятой и денежном формате (2 знака после запятой) соответственно.
#SUMI, #SUMD и #SUMM Суммы по столбцам итоговые по всем позициям. Целое число, число с плавающей запятой и денежном формате (2 знака после запятой).
#SUM(ИмяПеременной) Сумма какой-либо переменной в таблице.
#BLOCK Неделимая часть. Если текст внутри блока не помещается на страницу, то переносится на следующую.
#ENDBLOCK Конец неделимой части.
#Barcode Директива вывода номера текущего документа в штрих-код при печати.

Возможен вывод штрих-кода тремя способами.

  1. При помощи следующих параметров:

    Type - Тип кодировки (Code128, EAN13)

    Code - Строка кода

    Height - Высота штриха (кол-во строк). По умолчанию установлено значение 3

    Width - Ширина (некий коэффициент толщины пера, рисующего штрих). По умолчанию установлено значение 4

    PrintCode - Печатать строку кода или нет (0 или 1). По умолчанию установлено значение 1

    Пример:

    #Barcode(EAN13, 123456789, 3, 6, 0)

  2. Печать штрих-кода из выбранного атрибута документа.

    Пример:

    #Barcode(Code128, $DocAttr378)

    378 - номер атрибута, в котором содержится значение штрих-кода.

  3. Печать штрих-кода выбранного документа.

    Пример:

    #Barcode(Code128, $OrderNumber)

Примечание

Префиксы документов, состоящие из русских букв, не могут быть закодированы, т. к. Code128 не способен кодировать ASCII символы с кодом более 127.

#WORDWRAP Директива переноса строки с использованием символа разрыва строки.

Возможные значения:

  • 1 - режим переноса строк включен.

  • 0 - режим переноса строк выключен.

Директива предназначена для переноса текста печатной формы на следующую строчку. Без использования директивы длинный текст может не поместиться на листе и будет оборван. Текст, заключенный в параметры директивы, корректно переносится на следующую строку печатной формы при превышении размеров формы, которые определяются системой автоматически для каждого принтера.

Формат использования директивы:

#WORDWRAP 1

<Строка>

#WORDWRAP 0,

то есть текст должен быть размещен отдельной строкой между #WORDWRAP 1 и #WORDWRAP 0.

Пример строки для шаблона печатной формы:

#WORDWRAP 1

Грузополучатель и его адрес: $ClientName;, $ClientAttr845;

#WORDWRAP 0.

#IF Переменная

Условие на переменную.

Если указанная в директиве переменная возвращает непустое значение, то при формировании печатной формы обрабатывается шаблон, указанный в директиве между строками #IF и #ENDIF, в противном случае шаблон игнорируется.

Структура директивы:

#IF Переменная

Шаблон

#ENDIF

В шаблоне может быть использован любой текст и другие переменные, описанные в данном разделе. Шаблон может быть многострочным.

Пример использования смотрите в описании директивы #LIST.

#ENDIF Конец условия на переменную.
#LIST($OrderActionsAvail, $Comment)

Директива возвращает перечень комментариев по активным на момент формирования печатной формы акций для клиента, на которого оформлен документ, в виде:

  • Комментарий для акции 1

  • Комментарий для акции 2

  • ...

  • Комментарий для акции N

Пример использования директив IF, ENDIF, LIST($OrderActionsAvail, $Comment) и переменной OrderActionsAvail

Чтобы отобразить информацию об акциях, используя директивы IF, ENDIF, LIST($OrderActionsAvail, $Comment) и переменную OrderActionsAvail, добавьте в описание печатной формы следующий код:

#IF $OrderIsActionsAvail

Уважаемый клиент!

Вашему вниманию предлагаются следующие акции:

#List($OrderActionsAvail, $Comment)

Подробности – у нашего мобильного сотрудника.

#ENDIF

Вид при печати документа если акции доступны (пример):

Уважаемый клиент!

Вашему вниманию предлагаются следующие акции:

Купите две упаковки лимонада и получите пачку сока.

Купите три упаковки сока и получите бутылку лимонада.

Подробности – у нашего мобильного сотрудника.

Если акции не доступны, указанный текст не будет выведен на печать.

#FONTSIZE N

Директива настройки размера шрифта текста, выводимого в печатной форме, где N - размер шрифта.

Значение N для растровых принтеров - число от 6 до 12.

Пример:

#FONTSIZE 8

Примечание

Изменение шрифта при помощи директивы #FONTSIZE N возможно только при использовании растровых принтеров марок hp460, hp470, canon ip90, canon ip100 или моделей, аналогичных данным. В случае использования принтера другой марки корректность работы директивы не гарантируется.

Значение N для текстовых принтеров - слово large или small.

Пример:

#FONTSIZE small

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

#LINEHEIGHT M

Директива настройки межстрочного интервала текста, выводимого в печатной форме с момента указания этой директивы до следующей директивы #LINEHEIGHT M , либо до конца печатной формы, где М – числовое значение интервала.

По умолчанию М=1,2*max(N) (т.е. 1N = высота шрифта,0,2N непосредственно между строками, max(N) – максимальное значение N в данной строке), где N — размер шрифта, указанный в директиве #FONTSIZE.

Пример:

#LINEHEIGHT 1

При указании директивы необходимо соблюдать следующие требования:

  • Директива должна быть указана до текста, выводимого в форме на печать. Директива, указанная в тексте или после текста, выводимого на печать, игнорируется системой.

  • Если в шаблоне указано несколько директив, то используется последняя директива, указанная до текста, выводимого в форме на печать.

Примечание

Изменение шрифта при помощи директивы #LINEHEIGHT M возможно только при использовании принтеров марок hp460, hp470, canon ip90, canon ip100 или моделей, аналогичных данным. В случае использования принтера другой марки корректность работы директивы не гарантируется.

#PAGEHEADER

строка для вывода в колонтитул

#ENDPAGEHEADER

Директива для вывода колонтитула на каждый лист документа.

Для вывода верхнего колонтитула указывается директива #PAGEHEADER.

Для вывода нижнего колонтитула указывается директива #PAGEHEADER BOTTOM.

Строка для вывода в колонтитул может содержать текст, атрибуты и другие директивы.

При использовании директивы #PAGEHEADER должны быть выполнены следующие условия:

  • Директива #PAGEHEADER вставляется в верх листа.

  • На печать может быть выведено не более трех строк.