Именованная область «ЗаполнениеСоставаКарты» описывает правила заполнения данными многострочной части документа.

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

Каждая строка таблицы области заполнения состава карты предназначена для формирования одной или нескольких строк в многострочной части документа. Назовем их шаблонами строк. Они должны иметь одинаковое количество ячеек, совпадающее с количеством ячеек в именованных областях «СоставКарты1» и «СоставКарты2».

Элементы шаблона строки оформляются так, как они должны выглядеть в формируемом документе: шрифт, выравнивание, границы, вид. Для всех элементов рекомендуется использовать формат «Текстовый», за исключением элементов, в которые записывается формула, такие элементы должны иметь формат «Общий».

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

Шаблон строки может содержать ячейки, объединенные по вертикали. В таком случае строки, которые содержат объединенные по вертикали ячейки, будут обрабатываться как один шаблон строки. Нумерация ячеек в таком шаблоне строки осуществляется сверху вниз, слева направо. Примеры:

В OpenOffice Calc формат объединяемых ячеек необходимо задавать до их объединения.

 

Служебные поля шаблона строки

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

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

·         Пустое значение. Строка будет формироваться для всех записей источника данных.

·         Имя именованного объекта. Правило записи именованных объектов описаны в разделе 15.2.11.6. Должно возвращать логическое значение.

·         Обозначение класса. Формат ввода - произвольный текст. Строка будет формироваться для тех записей источника данных, в которых будет присутствовать такое обозначение класса. Псевдоним «Класс» в описании псевдонимов источника данных определяет номер столбца в источнике данных, содержащий обозначения классов (см. раздел 15.2.6.4.2).

·         Тип класса. Формат ввода - произвольный текст (число). Строка будет формироваться для тех записей источника данных, в которых будет присутствовать такой тип класса (вводится в виде числа). Псевдоним «ТипКласса» в описании псевдонимов источника данных определяют номер столбца в источнике данных, содержащий типы классов (см. раздел 15.2.6.4.2). Перечень типов классов приведен в разделе 15.1.10.3.4.

·         Служебное слово «ПустаяСтрока». Такой шаблон строки предназначен для формирования пустых строк. Количество пустых строк можно указать при помощи параметра «ПустыеСтроки» на закладке «Параметры» в реквизитах бланка (см. раздел 15.2.8), либо в десятом служебном поле шаблона строки. Правило записи служебных слов описаны в разделе 15.2.11.6.

·         Служебное слово «СменаГруппы_ИмяГруппы». Строка будет формироваться при смене группы записей с данным именем в основном источнике данных. Правило записи служебных слов описаны в разделе 15.2.11.6.

·         Служебное слово «НачалоГруппы_ИмяГруппы». Строка будет формироваться в начале каждой группы записей с данным именем в основном источнике данных. Правило записи служебных слов описаны в разделе 15.2.11.6.

·         Служебное слово «КонецГруппы_ИмяГруппы». Строка будет формироваться в конце каждой группы записей с данным именем в основном источнике данных. Правило записи служебных слов описаны в разделе 15.2.11.6.

·         Служебное слово «КонецОтчета». Строка будет формироваться последней после обработки всех записей в основном источнике данных. Правило записи служебных слов описаны в разделе 15.2.11.6.

·         Служебное слово «КонецСтраницы». Строка будет формироваться в конце каждого листа. Таких шаблонов строк может быть несколько. При этом действуют дополнительные правила:

·         Строка(и) имеет фиксированную высоту, переносы не допускаются.

·         Если присутствуют шаблоны строк со служебным словом «КонецОтчета», то конец листа будет сформирован перед ним.

·         ВТОРОЕ служебное поле не используется.

Служебные слова «СменаГруппы», «НачалоГруппы» и «КонецГруппы» обрабатываются в том случае, если определен параметр «Группа» в параметрах бланка (см. разделы «Бланк» 15.2.8 и «Параметры бланка» 15.2.8.1).

ВТОРОЕ служебное поле предназначено для указания дополнительного условия формирования строки. Может иметь следующие значения:

·         Пустое значение. Дополнительное условие отсутствует.

·         Имя именованного объекта. Правило записи именованных объектов описаны в разделе 15.2.11.6. Должно возвращать логическое значение.

ТРЕТЬЕ служебное поле предназначено для вызова дополнительного источника данных для шаблона строки. Если дополнительный источник данных будет иметь более одной записи, то на основании данного шаблона строки будет сформировано столько строк, сколько записей в дополнительном источнике данных.

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

Для вызова дополнительного источника данных можно использовать другой именованный объект (для других именованных объектов действуют правила записи описанные в разделе 15.2.11.6.), который вернет имя дополнительного источника данных, либо вернет пустую строку. Если именованный объект вернет пустую строку, то будет использоваться дополнительный источник данных, определенный в тексте программы на закладке «Функции» (см. раздел 15.2.6.3).

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

·         Проверка на наличие записи о дополнительном источнике данных в служебном поле шаблона строк.

·         В случае, если в служебном поле шаблона строки указан дополнительный источник данных, то полученное текстовое значение используется как имя дополнительного источника данных. Если возвращается пустая строка, то используется дополнительный источник данных определенный в тексте программы на закладке «Функции».

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

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

ЧЕТВЕРТОЕ и ПЯТОЕ служебные поля позволяют определить условие формирования строк с совпадающими значениями элементов. Служебные поля определяют с какого и по какой элемент необходимо отслеживать совпадающие значения элементов при формировании таких строк. В поля записываются номера элементов относительно начала строки таблицы или имя именованного объекта которое вернет номер элемента. Нумерация полей начинается с единицы. Если шаблон строки имеет объединенные по вертикали строки, то нумерация ячеек в таком шаблоне строки осуществляется сверху вниз, слева направо. Правило записи именованных объектов описаны в разделе 15.2.11.6. Совпадением считается, если каждый элемент из указанного диапазона в следующей сформированной строке (на основе данного шаблона строки, сформированные строки на основе других шаблонов строк не учитываются) имеет такое же значение, как и в предыдущей.

ШЕСТОЕ служебное поле позволяет определить условие формирования строк с совпадающими значениями элементов. Служебное поле может иметь следующие значения:

·         Служебное слово «Одна». Из группы подряд идущих сформированных строк с одинаковыми значениями элементов в выходной документ будет вставлена только первая.

·         Служебное слово «Все». Вставлены будут все строки, но при этом элементы с совпадающими значениями будут отображены только в первой строке группы, во всех остальных строках группы они будут иметь пустое значение.

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

Правила по умолчанию:

·         строки, предназначенные для формирования при смене группы («КонецГруппы_ИмяГруппы», «СменаГруппы_ИмяГруппы», «НачалоГруппы_ИмяГруппы») и в конце отчета («КонецОтчета»), формируются всегда;

·         остальные строки - если все элементы строки, которые должны были получить значение, получили пустое значение или нулевое, то строка не формируется.

Это служебное поле может иметь следующие значения:

·         Служебное слово «ВклПустые». Всегда формировать строку. Правило записи служебных слов описаны в разделе 15.2.11.6.

·         Служебное слово «НеВклПустые». Не формировать строку с пустыми значениями элементов. Правило записи служебных слов описаны в разделе 15.2.11.6.

·         Пустое значение. Действуют правила по умолчанию.

ВОСЬМОЕ и ДЕВЯТОЕ служебные поля предназначены для указания номера последней возможной строки многострочной части документа куда может формироваться строка на основе данного шаблона (задается в виде числа). Восьмое поле предназначено для области «Карта1», девятое поле предназначено для области «Карта2». Если при формировании выходного документа номер текущей строки многострочной части будет больше номера указанного в служебном поле, то формирование текущего листа будет закончено и строка будет сформирована на новом листе. В качестве примера использования можно рассмотреть формирование конструкторской спецификации, где в некоторых отраслевых стандартах рекомендуется не разносить наименование раздела и состав раздела на разные листы. Поэтому для шаблона строки, который будет формировать наименование раздела, нужно указать для первого и последующих листов номера строк многострочной части до которых можно формировать строку с наименованием раздела так, чтобы после нее сформировалась хотя бы одна строка из состава раздела.

ДЕСЯТОЕ служебное поле. Если на основе текущей записи основного источника данных формируются строки на основе нескольких шаблонов строк, то между ними пустые строки не формируются. Количество пустых строк определяется параметром «ПустыеСтроки» в реквизитах бланка (см. раздел 15.2.8). ДЕСЯТОЕ служебное поле позволяет изменить данное правило по умолчанию. Если в ДЕСЯТОЕ служебное поле записать служебное слово «ВставлятьПустыеПосле», то после строки, сформированной на основе данного шаблона, пустые строки будут формироваться всегда, если в параметре «ПустыеСтроки» на закладке «Параметры» в реквизитах бланка (см. раздел 15.2.8) указано ненулевое значение. Если в ДЕСЯТОЕ служебное поле записать число, соответствующее количеству пустых строк, то параметр «ПустыеСтроки» не будет использоваться для данного шаблона строки. Правило записи служебных слов описаны в разделе 15.2.11.6.

Формирование пустых строк

Для формирования пустых строк в бланке в таблице заполнения состава карты оформляется специальный шаблон строки со служебным словом «ПустаяСтрока» в ПЕРВОМ служебном поле. Остальные служебные поля не используются. Элементы такой строки могут иметь:

·         Пустое значение.

·         Произвольный текст.

·         Служебное слово «НомерСтрокиНаЛисте». Правило записи служебных слов описаны в разделе 15.2.11.6.

·         Служебное слово «НомерСтроки». Правило записи служебных слов описаны в разделе 15.2.11.6.

·         Имя именованного объекта. Правило записи именованных объектов описаны в разделе 15.2.11.6.

При формировании пустой строки переносы не осуществляются.

Если такого шаблона строки в таблице нет, то пустые строки формируются на основании строк именованной области «СоставКарты».

Осуществление переносов

При формировании строк программный модуль рассчитывает количество символов, входящих в элемент строки по длине. Если количество символов значения элемента превышает количество входящих символов, то происходит перенос на следующую строку. Перенос производится в местах нахождения символа " " (пробел). Данный символ можно дополнить другими символами в параметре «СимволыПереноса» в реквизитах бланка (см. раздел 15.2.8). Если такие символы отсутствуют, то перенос делается по количеству входящих в элемент символов.

Переносы осуществляются только для элементов бланка имеющих формат «Текстовый» и у элементов бланка, у которых не стоит признак «Автоподбор ширины».

Если необходимо обработать согласно шаблону строки каждую строку сформированную в результате переноса, то для таких элементов бланка необходимо указать признак «+». Если необходимо, чтобы не выполнялся перенос строки, то для таких элементов бланка необходимо указать признак «-» Правила описания признаков в элементах бланка описаны в разделе 15.2.11.6.

В многострочном тексте каждая строка разбивается по правилам однострочного текста. При этом признак переноса имеет сквозную нумерацию. Строки отделяются символом с числовым кодом 10, или последовательностью двух символов подряд: символ с числовым кодом 13 плюс символ с числовым кодом 10.

Алгоритм осуществления переносов:

·         Проверка от начала строки на наличие символов переноса.

·         При нахождении символа переноса проверяется ограничение на переносы слов, описанные в словаре исключений (см. описание ниже).

·         Ищется максимальная строка, помещающуюся в элемент строки. Если слово не вмещается в элемент, осуществляется перенос по последнему вмещающемуся символу. У оставшейся части строки удаляются символы пробела справа.

·         Выставляется признак переноса.

·         Если перенос символов осуществлялся по символу переноса, то у перенесенной части строки удаляется символы пробела слева.

·         Процедура повторяется.

Словарь исключений

Для того, чтобы не осуществлялись переносы определенных слов и выражений в системе ведется словарь исключений. Определение используемых при формировании бланка словарей осуществляется с помощью параметра «СловариОтчета» в реквизитах бланка (см. раздел 15.2.8), в котором через запятую перечисляются имена используемых словарей (см. раздел 15.2.6.4.3).

В папке программы находится файл «TCS_Rpt.dict». Файл редактируется текстовым редактором и имеет структуру, схожую со структурой ini-файла, каждая секция которого является наименованием словаря (имя словаря не чувствительно к регистру). По умолчанию используется словарь «Default». Все словари могут настраиваться пользователем.

Каждая строка словаря имеет следующий формат:

Правило1,Правило2,...:Исключаемая последовательность символов

Последовательность символов может представлять собой слово или даже целое выражение.

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

Допускаются следующие правила для последовательности символов:

·         «-» - Запрещается перенос данной последовательности.

·         «-N» - Следующая последовательность символов и N-слов за ней запрещается переносить, где N - целое положительное число.

Работа словаря исключений чувствительна к регистру.

Символ пробела удаляется справа от указанной последовательности символов.

Пример оформления словаря:

[Default]

:Произвольная строка комментария

 

:Данную фразу запрещается переносить

-:Втулка уплотняющая

:Слова «ГОСТ», «ОСТ», «ТУ» и следующее за ними одно слово рассматривать как единое целое выражение (запрещается перенос слова после слова «ГОСТ»)

-1:ГОСТ

-1:ОСТ

-1:ТУ

Использование агрегирующих функций

Для каждой ячейки шаблона строки можно указать признак, позволяющий запомнить напечатанное значение в счетчике (см. раздел 15.2.11.5).

 

См. также:

15.2.11.2 Основные именованные области