П1.2. Структура текстовых форм

В этом параграфе мы опишем структуру текстовых форм документов (отчетов). Структура произвольных форм описана в следующем параграфе.

Текстовая форма представляет собой текстовый файл, в котором квадратными скобками (“[” и “]”) отмечены поля для подстановки значений макроимен. Между скобками указывается макроимя, определяющее данные, помещаемые в это поле формы. С помощью команд установки формата (!Е, !Т, !РАЗДЕЛЯТЬ, !НЕРАЗДЕЛЯТЬ), а также посредством указания формата вывода непосредственно в поле, Вы можете управлять форматом представления данных, помещаемых в поле.

Команды. В текстовой форме могут присутствовать также команды для расчета показателей, задания периода расчета итогов по счетам, указания числа цифр в дробной части выводимых показателей, циклической обработки счетов, субконто, валют и т.д. Команды начинаются с восклицательного знака (“!”). Команды присваивания и установки периода можно записывать по нескольку в одной строке, в этом случае их следует разделять пробелами.

Комментарии. В форме можно использовать также строки комментариев, они начинаются со звездочки (“*”) в первой колонке. Комментарии служат только для записи замечаний в текст формы, в создаваемый документ они не помещаются. Комментарии можно также задавать с помощью команды “!*” — весь текст от этой команды до конца строки является комментарием.

Таким образом, в текстовой форме могут содержаться строки трех видов:

Формирование выходного документа выполняется следующим образом. Программа читает построчно текст формы документа. Строки, начинающиеся с “*”, пропускаются. Для остальных строк программа поступает так:

  1. Если в строке имеются команды (они следуют за символом “!”), то сначала выполняются эти команды.
  2. Если в строке есть команды и перед первой командой нет символов, кроме пробелов, то обработка строки заканчивается. В противном случае часть строки от ее начала до первого символа “!” или до конца строки включается в формируемый документ. При этом, если в этой части строки имеются квадратные скобки (“[” и “]”), то программа вычисляет макроимя, заданное между скобками, и подставляет на это место вычисленное значение. Если длина значения меньше отведенного для поля числа символов (числа символов между квадратными скобками “[” и “]”, включая сами эти скобки), то значение дополняется справа пробелами, так что выравнивание колонок в сформированном документе не нарушается. Если длина значения больше отведенного для значения числа символов, то значение обрезается справа.

Замечание. То, что команды, расположенные в конце строки, выполняются до совершения подстановок значений макроимен в начале этой строки, позволяет использовать в строках формы показатели (см. ниже), определяя формулы для их вычисления в конце той же строки. Это во многих случаях значительно повышает наглядность формы.

Используются технологии uCoz