Правила для оператора GENERATE (ГЕНЕРИРОВАТЬ) ука­зывают, что при распознавании прерывания управления СУГО по­рождает группы отчета типа управляемая концовка начиная от самого низкого уровня в порядке возрастания до наивысшего уров­ня прерывания управления. При этом нужно отметить, что если фраза RESET (СБРОСИТЬ) в описании отчета указывает управ­ляющее имя-данного, выполняются действия, описанные в п. 10е, даже если для этого управляющего имени-данного не определена группа отчета типа управляемая концовка.

  1. Производится концовочпое суммирование, т. е. все счетчики •сумм, определенные в этой группе отчета, являющиеся операндами фраз SUM. (СУММА) в этой же группе отчета, прибавляются к по­рождаемым этими фразами счетчикам сумм (см. п. 3.19 настоящей •части).

  2. Производится нарастающее суммирование, т. е. все счетчи­ки сумм, определенные в этой группе отчета, являющиеся операн­дами фраз SUM (СУММА) в группах отчета типа управляемая концовка, относящихся к более высоким уровням иерархии управ­ления, прибавляются к порождаемым этими фразами счетчикам сумм (см. п. 3.19 настоящей части).

  3. Если имеется процедура USE BEFORE REPORTING (ИС­ПОЛЬЗОВАТЬ ДО ВЫДАЧИ) со ссылкой на имя-данного группы «отчета, выполняется процедура, определенная оператором USE (ИСПОЛЬЗОВАТЬ).

  4. Если был выполнен оператор SUPPRESS (ПОДАВИТЬ) или ■группа отчета непечатаемая, СУГО следующими выполняет дейст­вия, описанные в п. 10е ниже.

  5. Если оператор SUPPRESS (ПОДАВИТЬ) не был выполнен ■и группа отчета печатаемая, СУГО формирует печатаемые строки и представляет-группу отчета соответственно правилам представ­ления для групп отчета типа управляемая концовка.

  6. Затем СУГО сбрасывает те счетчики сумм, обновление кото­рых должно выполняться при обработке этого уровня иерархии управления (см. п. 3.19 настоящей части).

  1. Обработка группы отчета тина фрагмент, выполняемая по -оператору GENERATE имя-отчета (ГЕНЕРИРОВАТЬ нмя-отче- та), описана в п. Па— 11д ниже.

Если в описании отчета указана только одна группа отчета ти­па фрагмент, обработка фрагмента выполняется генератором отче­тов по оператору GENERATE имя-отчета (ГЕНЕРИРОВАТЬ имя- ютчета) в соответствии с и. Па—11л. описанными гч/.е. Эти дейст-вия выполняются так, как если бы выполнялся оператор GENERA­TE имя-даниого (ГЕНЕРИРОВАТЬ имя-данного) для этого фраг­мента.

Если в описании отчета нет ни одной группы отчета типа фраг­мент, обработка, выполняемая по оператору GENERATE имя-отче- та (ГЕНЕРИРОВАТЬ имя-отчета), описана в Па.

Это действие выполняется так, как если бы описание отчета со­держало только одну группу отчета типа фрагмент и выполнялся бы оператор GENERATE имя-данного (ГЕНЕРИРОВАТЬ имя- даппого).

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

  2. Если имеется процедура USE BEFORE REPORTING (ИС­ПОЛЬЗОВАТЬ ДО ВЫДАЧИ) со ссылкой на имя-данного груп­пы отчета, выполняется процедура USE (ИСПОЛЬЗОВАТЬ).

  3. Если был выполнен оператор SUPPRESS (ПОДАВИТЬ) или группа отчета непечатаемая, то ее дальнейшая обработка не про­изводится.

  4. Если группа отчета типа фрагмент порождается по операто­ру GENERATE имя-отчета (ГЕНЕРИРОВАТЬ имя-отчета), даль­нейшая обработка группы отчета не производится.

  5. Если ни 11в, ни Иг не применяются, формируются печатае­мые строки п группа отчета представляется соответственно прави­лам представления для групп отчета типа фрагмент (см. п. 3.10 настоящей части).

  1. При обработке групп отчета типа управляемый заголовок, управляемая концовка или фрагмент (см. общие правила 9, 10. И), СУГО может прерывать обработку этой группы тела после уста­новления, что эта группа должна быть представлена, и выполнить переход на следующую страницу (и, соответственно, порождение групп отчета типа концовка страницы или заголовок страницы) до представления группы тела.

  2. ) При обработке прерывания управления значения управ­ляющих данных, которые использовались СУГО для обнаружения прерывания управления, будут называться предыдущими .значения­ми.

  1. При обработке по прерыванию управления группы отчета типа управляемая концовка любые ссылки на управляющие дан­ные в процедуре, определенной оператором USE (ИСПОЛЬЗО­ВАТЬ) или фразе SOURCE (ИСТОЧНИК), связанные с этой груп­пой типа управляемая концовка, относятся к предыдущим значе­ниям.

  2. При выполнении оператора TERMINATE (ЗАКОНЧИТЬ) и при порождении групп отчета типа управляемая концовка и кон­цовка отчета СУГО обеспечивает доступность набора предыдущих.

значений управляющих данных фразе SOURCE (ИСТОЧНИК) или ссылкам процедуры, определенной оператором USE (ИСПОЛЬ­ЗОВАТЬ), как если бы прерывание управления было распознано для управляющего имени-данного самого старшего уровня.

  1. Ссылки на все остальные данные в группах отчета и отно­сящихся к ним процедурах операторов USE (ИСПОЛЬЗОВАТЬ) относятся к текущим значениям данных во время обработки этой группы отчета.

3.21. Фраза USAGE (ОБ ИСПОЛЬЗОВАНИИ)

  1. Назначение

Фраза USAGE (об использовании) определяет формат данного в памяти машины.

  1. Общий формат

[USAGE IS] DISPLAY

ДЛЯ ВЫДАЧИ

'3.21.3. Синтаксические правила

  1. Фраза USAGE (об использовании) может быть записана в любой статье описания данного.

  2. Если фраза USAGE (об использовании) записана в статье описания группового данного, она может быть также записана в статье описания подчиненного элементарного данного или группо­вого данного.

  3. Фраза USAGE (об использовании) для группы отчета мо­жет определять только USAGE IS DISPLAY (ДЛЯ ВЫДАЧИ).

  1. Общие правила

  1. Если фраза USAGE (об использовании) записана на уров­не группового данного, она относится к каждому элементарному данному в группе.

  2. Фраза USAGE (об использовании) указывает, в каком ви­де представлено данное в памяти машины. Это не влияет на ис­пользование данного, хотя спецификации некоторых операторов в разделе процедур могут накладывать ограничения на фразу об ис­пользовании для операндов, на которые имеются ссылки в операто­рах. Фраза USAGE (об использовании) может влиять на основа­ние системы счисления и тип представления литер данного.

  3. Фраза USAGE IS DISPLAY (ДЛЯ ВЫДАЧИ) указывает, что формат данного является стандартным форматом данного.

  4. Если фраза USAGE (об использовании) не указана для элементарного данного или для любой группы, к которой принад­лежит данное, предполагается неявная фраза DISPLAY (ДЛЯ ВЫ­ДАЧИ).

3 22. Фраза VALUE (ЗНАЧЕНИЕ)

  1. Назначение

Фраза VALUE (ЗНАЧЕНИЕ) определяет значение печатаемо­го данного секции отчетов.

  1. Общий формат VALUE IS литерал-1

(ЗНАЧЕНИЕ 1

1 4T4ALI I литерал-1

  1. Синтаксические правила

  1. Числовой литерал со знаком должен соответствовать стро­ке литер шаблона числового данного со знаком.

  2. Числовой литерал во фразе VALUE (ЗНАЧЕНИЕ) дол­жен иметь значение из диапазона значений, указанного фразой PICTURE (ШАБЛОН) и не может иметь значение, которое могло бы потребовать усечения ненулевых цифр. Нечисловой литерал во фразе VALUE (ЗНАЧЕНИЕ) данного должен не превышать раз­мер, указанный во фразе PICTURE (ШАБЛОН).

  1. Общие правила

  1. Фраза VALUE (ЗНАЧЕНИЕ) не должна противоречить другим фразам в описании данного или в описании иерархии дан­ного. Применяются следующие правила:

  1. если категория данного числовая, литерал-1 во фразе VALUE (ЗНАЧЕНИЕ) должен быть числовым; . _ ■ ■

  2. если категория данного буквенная, буквенно-цифровая, бук­венно-цифровая редактируемая или числовая редактируемая, ли­терал-1 во фразе VALUE (ЗНАЧЕНИЕ) должен быть нечисловым литералом. Литерал выравнивается в данном как если бы данное было описано как буквенно-цифровое (см. ч. 4, п. 4.3.6). Литеры редактирования во фразе PICTURE (ШАБЛОН) учитываются при определении размера данного, но не влияют на инициацию данного (см. ч. 6, п. 5.9). Поэтому значение для редактируемого данного должно быть указано в отредактированной форме;

  3. на инициацию не влияют фразы BLANK WHEN ZERO (ПРОБЕЛ КОГДА НУЛЬ) или JUSTIFIED (СДВИНУТО), кото­рые могут быть указаны.

  1. Если в секции отчетов элементарная статья отчета, содер­жащая фразу VALUE (ЗНАЧЕНИЕ), не содержит фразу GROUP INDICATE (ОПРЕДЕЛЯЕТ ГРУППУ), то печатаемому данному присваивается указанное значение каждый раз при печати соот­ветствующей группы отчета. Однако если-кроме фра.зы VALUE (ЗНАЧЕНИЕ) имеется также фраза GROUP INDICATE (ОПРЕ­ДЕЛЯЕТ ГРУППУ)' указанное значение представляется только при существовании определенных условий во время выполнения (см. п. 3.13 настоящей части).

  1. РАЗДЕЛ ПРОЦЕДУР В МОДУЛЕ ГЕНЕРАТОРА ОТЧЕТОВ

    1. Общее описание

Если в исходной Кобол-программе имеется оператор USE BEFO­RE REPORTING (ИСПОЛЬЗОВАТЬ ДО ВЫДАЧИ) модуля гене­ратора отчетов, раздел процедур содержит декларативные проце­дуры. Ниже приведен общий формат раздела процедур, когда име­ется оператор USE BEFORE REPORTING (ИСПОЛЬЗОВАТЬ ДО ВЫДАЧИ) и (или) USE AFTER STANDARD EXCEPTION PROCEDURE (ИСПОЛЬЗОВАТЬ ПОСЛЕ СТАНДАРТНОЙ ПРОЦЕДУРЫ ОШИБКИ).

PROCEDURE DIVISION.

DECLARATIVES.

{имя-секции SECTION.

AFTER STANDARD EXCEPTION

P

оператор USE

ROCEDURE

BEFORE REPORTING

[имя-параграфа.

[предложение] ... ] ...}...

END DECLARATIVES.

{имя-секции SECTION.

[имя-параграфа.

[предложение] .. . ] ...}...

РАЗДЕЛ ПРОЦЕДУР.

ДЕКЛАРАТИВЫ.

{СЕКЦИЯ имя-секции.

ПОСЛЕ СТАНДАРТНОЙ

П

оператор ИСПОЛЬЗОВАТЬ

РОЦЕДУРЫ ОШИБКИ • ДО ВЫДАЧИ

[имя-параграфа.

[предложение]!... ] ...}... КОНЕЦ ДЕКЛАРАТИВ

{СЕКЦИЯ имя-секции.

[имя-параграфа.

[предложение] ... ] .

  1. Оператор CLOSE (ЗАКРЫТЬ)

    1. Назначение

    2. Оператор CLOSE (ЗАКРЫТЬ) завершает обработку катушек (томов) и файлов с необязательной перемоткой и (или) замком или удалением, где это применимо.Общий формат

{

имя-файла-1

CLOSE

wf|
[F0R REMQVAL]

,VITU ( NO REWIND )

W

( КАТУШКУ |ТОМ

имя-файла-1

ЗАКРЫТЬ

ITH j LOCK j

имя-файла-1 [С УДАЛЕНИЕМ]

БЕЗ ПЕРЕМОТКИ

С ЗАМКОМ

  1. Синтаксические правила

  1. Файлы, на которые ссылается оператор CLOSE (ЗАК­РЫТЬ), могут иметь различную организацию или доступ.

  2. Допустимость вариантов в операторе CLOSE (ЗАКРЫТЬ) зависит от уровня модуля последовательного ввода-вывода, под­держиваемого реализацией (см. ч. 7, п. 4.2).

  1. Общие правила ,

За исключением особо оговоренных случаев в ниже приведен­ных общих правилах, термины «катушка» и «том» являются си­нонимами и полностью взаимозаменяемы в операторе CLOSE (ЗАКРЫТЬ). Интерпретация последовательных файлов массовой памяти логически эквивалентна интерпретации файлов на ленте или аналогичных последовательных носителях. Файл, содержащий­ся в многофайловой ленточной среде, логически рассматривается как последовательный однокатушечный (однотомный) файл.

  1. Оператор CLOSE (ЗАКРЫТЬ) может быть выполнен толь­ко для файла, который был открыт.

  2. Для того, чтобы показать действие различных типов опера­тора CLOSE (ЗАКРЫТЬ) для различных носителей данных, все файлы отчетов разделяются на следующие категории:

  1. без катушек (томов). Файл, носитель которого такой, что для него понятие перемотки катушек (томов) не имеет смысла;

  2. последовательный однокатушечный (однотомный). После­довательный файл, который полностью располагается на одной ка­тушке (томе);

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

(3) Результаты выполнения каждого типа оператора CLOSE (ЗАКРЫТЬ) для каждой категории файла приведены в таблице.

Значения символов А—3 в таблице приведены ниже.

  1. Влияние на обработанные ранее катушки (тома) выходного файла отчетов.

Формат оператора

GUOSE (ЗАКРЫТЬ)

Категория файла

Без катушек (томов)

Последовательный однокатушечный (однотомный)

Поел едователъный многокатушечный (многотомный)

CLOSE (ЗАКРЫТЬ)

в

в, ж

А, В, Ж

CLOSE WITH LOCK (ЗАКРЫТЬ С ЗАМКОМ)

в, д

в, д, ж

А, В, Д, Ж

CLOSE WITH NO REWIND (ЗАКРЫТЬ БЕЗ ПЕРЕМОТКИ)

в, з

Б, В

А, Б, В

CLOSE REEL/UNIT (ЗАКРЫТЬ КАТУШКУ/ТОМ)

Е

Е, Ж

Е, Ж

CLOSE REEL/U'NIT

FOR REMOVAL (ЗАКРЫТЬ КАТУШКУ/ТОМ С УДАЛЕНИЕМ)

Е

г. Е, Ж

Г, Е, Ж



Все катушки (тома) в файле отчетов, предшествующие текущей катушке (тому), закрываются, если для них не выполнялся опера­тор CLOSE REEL (ЗАКРЫТЬ КАТУШКУ) или CLOSE UNIT (ЗА­КРЫТЬ ТОМ).

Б. Текущая катушка не перематывается.

Текущая катушка (том) остается в текущей позиции.

  1. Закрыть выходной файл отчетов.

Если для файла указаны записи меток, метки обрабатываются в соответствии со стандартной процедурой обработки меток, оп­ределенной реализацией. Действия оператора CLOSE (ЗАК­РЫТЬ) не определены, если записи меток указаны, по отсутству­ют, или когда записи меток не указаны, но присутствуют.

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

Г. Удаление катушки (тома).

Если это применимо, производится перемотка текущей катушки или тома и логическое удаление их из единицы исполнения, одна­ко, катушка или том могут стать снова доступными в порядке рас­положения катушек или томов в файле отчета, если за выполне­нием оператора CLOSE (ЗАКРЫТЬ) без варианта REEL (КА­ТУШКУ) или UNIT (ТОМ) для этого файла отчетов будет выпол­нен оператор OPEN (ОТКРЫТЬ) для этого же файла отчетов.