При печати платежных документов на рабочих местах "Банк" и "Клиент", программное обеспечение использует специальные файлы шаблонов печати XXXXXXXX.TXT, расположенные в директории с программным обеспечением рабочих мест. Файлы шаблонов печати представляют из себя текстовые файлы ASCII формата, включающие в себя:
Заголовок шаблона печати содержит список реквизитов платежного документа, выводимых программой на печать из базы данных программы с указанием формата вывода. Одному печатаемому реквизиту соответствует одна строка заголовка и отведено поле в образе печатаемого документа.
Строки заголовка шаблона печати должны иметь следующий формат:
FIELD <номер реквизита> <наименование поля> <спецификация формата>
Наменование поля - наименование поля базы данных, содержащего реквизит платежного документа. Наименования полей баз данных приведены в файле FIELDS.OBT, поставляемом с каждой новой версией.
В описаниях полей указаны их форматы полей, определяющие хранимое значение реквизита внутри данного поля:
Спецификация формата определяет способ печати реквизита в поле печати данного реквизита.
Поле печати реквизита представляет собой последовательность символов #, определяющую расположение данного реквизита в печатаемом документе.
Соответствие между полями печати и их описаниями в строках заголовка шаблона подчиняются следующему правилу: последовательности строк описания в заголовке файла соответствует последовательность полей печати в документе (в строке слева - направо, а затем в следующую строку сверху - вниз).
Для печати реквизитов платежных документов предусмотрены следующие спецификации формата (в зависимости от формата выводимых на печать данных):
Спецификация формата | Назначение спецификации | Формат данных | Возможные параметры |
---|---|---|---|
%s | печать строки символов | CHAR | T=П Т=Ц умолч. T=Л |
%u,%05u,%4u | печать в формате целого числа без знака 0 ... 65535 (можно указать число символов) | INT | Т=Ц умолч. T=Л T=П Т=Ц |
%lu | печать в формате целого числа без знака 0 ... 4294967295 | LONG | T=П Т=Ц |
%09ld | - печать 9 символов с заполнением лидирующих символов '0' (нулем) со знаком | LONG | |
%d | печать в формате целого числа со знаком - 32768 ... 32767 | INT | T=П Т=Ц |
%.0Nf | печать в формате числа с плавающей точкой [-]ddddd.dddd где dddd - одна или более десятичных цифр. Число цифр до десятичной точки зависит от величины значения, а число цифр после десятичной точки равно N | DOUBLE | T=PROP S=M T=CURR T=PRUR |
T=DATE | Печать даты прописью в виде: 19 ноября 1995 г. | DATE | |
%DD-MM-GG | Печать даты в виде 19-11-95 где DD - день месяца MM - месяц GG - год | DATE | |
%DD.MM.YYGG __.__.__ __.__.19__ | Печать даты в виде 09.12.1998 Печать даты в виде 19.11.95 Печать даты в виде 19.11.1995 | DATE DATE DATE | |
%GG/MM/DD | Печать даты в виде 95/11/19 где DD - день месяца MM - месяц GG - год | DATE |
Назначение параметров, используемых в спецификации печати приведено в таблице 6.
Наименование параметра | Назначение параметра |
П=П | При печати производится смещение печатаемых данных правой границе поля печати (буква T - латинская) |
П=Ц | При печати производится центрирование печатаемых данных внутри поля печати |
Т=VIBK | Печатается соответствующая значению INT - строка текста из меню CLIENT.MNU (BANK_CB.MNU) |
Т=DATE | Печатается соответствующая значению DATE- строка текста в формате: 19 марта 1996 г. |
Т=VDATE | Печатается соответствующая значению DATE- строка текста в формате: 19 januar 1996 г. |
T=PROP S=M | Производится преобразование числа в его строковый эквивалент (сумма прописью) и последующая печать строкового эквивалента на русском языке в виде M строк текста c печатью слов рубли и копейки. |
T=PROPV S=M | Производится преобразование числа в его строковый эквивалент (сумма прописью) и последующая печать строкового эквивалента на русском языке в виде M строк текста не печатаются слова рубли и копейки,а дробью 35/100) |
T=VPROP S=M | Производится преобразование числа в его строковый эквивалент (сумма прописью) и последующая печать строкового эквивалента на английском языке в виде M строк текста 123.23 (one hundret twenty three 23/100) |
Т=CURR | Печать числа с использованием запятых в качестве разделителей триад целой части числа (например 55,555,333-34) |
Т=TRUNK | Печать числа с обрезанием хвостовых нулей (для обрезания незначащих нулей после запятой - %.8f) |
Т=PRUR | Печать числа с использованием указанного в разделителя символа вместо точки (например, 123456-17) |
Т=UPPER | Печать с переводом всех символов печатаемого в верхний регистр (заглавными буквами) |
Т=LINE | Печать в несколько строк (S=?) с разбивкой не по пробелам, а без правил переноса (печать суммы прописью ??) |
Т=VCURR S=N | Печать числа с использованием запятых в качестве разделителей триад целой части числа (и последующая печать кода валюты по ISO) пример: 123,25.00 (RUR) |
T=COMP | Объединение двух символьных строк, следующих в базе друг за другом в одну с последующей разбивкой на фрагменты. |
T=COMP2 | Объединение трех символьных строк, следующих в друг за другом в одну с последующей разбивкой на фрагменты (применяется при печати выписки) |
T=SPACE | Объединение двух символьных строк с добавлением пробела |
Примечание: При печати строкового эквивалента числа (сумма прописью) в нескольких строках, необходимо для каждой строки определить свое поле печати, состоящее из символов #, при этом, всем эти строки должны иметь номер реквизита, в котором указана ссылка на имя этого реквизита в базе данных. При этом эти поля могут чередоваться с другими, печатающими другие реквизиты.
Печать в поля может быть задана с условием, описываемым определенным образом, например:
FIELD 3 ЕСЛИ Фирма < "0" ТО Плательщик ИНАЧЕ Фирма %s
это означает, что если поле Фирма пустое (сравнение со строкой "0"), то печатать поле Плательщик, иначе печатать поле Фирма вывод данных строковый: %s
Вариант ветвления условия по ИНАЧЕ необязательный, в этом случае при выполнении условия происходит печать, а при невыполнении поле остается незаполненным.
Можно таким же образом печатать варианты текста по условию, например:
FIELD 38 ЕСЛИ Приоритет >= 90 ТО TXT=58 ИНАЧЕ TXT=59 %s
это означает, что если в поле "Приоритет" лежит значение больше или равно 90 (число из меню), то напечатать текст "58", иначе "59". Если текст содержит пробелы, то его нужно заключить в кавычки: "TXT=Поле 58". Признаком печати текста по условию служит сочетание TXT= (латинскими символами), за которым должен следовать печатаемый текст. Максимальная длина строки текста = 30 символов.
Последней строкой заголовка должна быть строка END, первая следующая за ней строка входит в образ печатаемого документа (даже если она пустая).
Образ печатаемого документа может состоять из:
Начиная с версии 4.03 введены дополнительные возможности печати по текстовому шаблону:
1. Введена возможность настройки типа шрифта, количества экземпляров на листе, и количества печатаемых документов по умолчанию путем описания этих данных в шаблоне печати. Для этого нужно написать в начале текстового файла шаблона соответствующей строки с указанием параметра:
_ШРИФТ 2 (1 = PICAD, 2 = ELITA, 3 = CONDENSED) (4 = ELITA альбом, 5 = CONDENSED портрет) _КОПЛИСТ 2 - число экземпляров документа на листе формата А4 _КОЛДОК 3 - число документов, печатаемых при отсутствии прямых указаний оператора.
2. Введена возможность прямой печати полей из карточки реквизитов абонента. Для этого в списке печатаемых полей нужно указать поле файла ABON.DDF, например:
FABON Директор %s
Список полей файла ABON.DDF приведен в описателе полей FIELDS.OBT.
Начиная с версии 4.04 введена возможность объединения нескольких полей в одно с последующей разбивкой их на несколько строк. При этом при наличии данных в поле (не пустое) печать может быть произведена с тестовыми обрамлениями как перед данными, так и после них. Для текстовой вставки перед данными используется сочетание символов F= , за которым в кавычках идет текст. Кавычек может не быть, если в тексте нет пробелов. Текстовая вставка после данных описывается с аббревиатурой Z=. Длина текстовых вставок до 20 символов.
Пример 1
FIELD 25 КодБанкаПол F="Код уч. <" %s Z=>
Эта строка означает, что при наличии значения в поле КодБанкаПол будет напечатано: Код уч. <4126700000>
Пример 2:
FIELD 28 Получатель2 %s S=6 FIELD 28 // 29 FIELD 28 // 30 FIELD 28 // 31 FIELD 32 ДатаПлат %DD.MM.YYGG FIELD 28 // 33 FIELD 28 // 34 FIELD 28 СубСчетБанк %s F=" р/с." FIELD 28 ЕСЛИ СубСчетБанк > "00" ТО БанкКорр %s F=" в "
В этом примере поле печати N 28 формируется из полей <Получатель2>, <СубСчетБанк> с предикатом " р/с." и <БанкКорр> при наличии данных в поле СубСчетБанк с предикатом " в ". При этом может быть напечатано:
АОЗТ "Получатель"
или
АОЗТ "Получатель" р/сч. 40702810038040000012 в Лефортовском ОСБ 5555 МБ АК СБ РФ
Сформированная сложная строка печатается при этом в 6 строк (S=6).
Начиная с версии 4.14 введены дополнительные возможности печати текущей даты и ФИО текущего оператора (4.12):
FOPER 20 %s - Сидоров П.А. FDATE 21 T=DATE - прописью: 08 сентября 2000 г. или FDATE 21 %DD.MM.YYGG - 08.09.2000 В качестве примера использования смотрите шаблон REES_PP.TXT.