ГОСТ 22558-89 сторінка 87 з 116
Общий формат
[USAGE IS] DISPLAY
ДЛЯ ВЫДАЧИ
'3.21.3. Синтаксические правила
Фраза USAGE (об использовании) может быть записана в любой статье описания данного.
Если фраза USAGE (об использовании) записана в статье описания группового данного, она может быть также записана в статье описания подчиненного элементарного данного или группового данного.
Фраза USAGE (об использовании) для группы отчета может определять только USAGE IS DISPLAY (ДЛЯ ВЫДАЧИ).
Общие правила
Если фраза USAGE (об использовании) записана на уровне группового данного, она относится к каждому элементарному данному в группе.
Фраза USAGE (об использовании) указывает, в каком виде представлено данное в памяти машины. Это не влияет на использование данного, хотя спецификации некоторых операторов в разделе процедур могут накладывать ограничения на фразу об использовании для операндов, на которые имеются ссылки в операторах. Фраза USAGE (об использовании) может влиять на основание системы счисления и тип представления литер данного.
Фраза USAGE IS DISPLAY (ДЛЯ ВЫДАЧИ) указывает, что формат данного является стандартным форматом данного.
Если фраза USAGE (об использовании) не указана для элементарного данного или для любой группы, к которой принадлежит данное, предполагается неявная фраза DISPLAY (ДЛЯ ВЫДАЧИ).
3 22. Фраза VALUE (ЗНАЧЕНИЕ)
Назначение
Фраза VALUE (ЗНАЧЕНИЕ) определяет значение печатаемого данного секции отчетов.
Общий формат VALUE IS литерал-1
(ЗНАЧЕНИЕ 1
1 4T4ALI I литерал-1
Синтаксические правила
Числовой литерал со знаком должен соответствовать строке литер шаблона числового данного со знаком.
Числовой литерал во фразе VALUE (ЗНАЧЕНИЕ) должен иметь значение из диапазона значений, указанного фразой PICTURE (ШАБЛОН) и не может иметь значение, которое могло бы потребовать усечения ненулевых цифр. Нечисловой литерал во фразе VALUE (ЗНАЧЕНИЕ) данного должен не превышать размер, указанный во фразе PICTURE (ШАБЛОН).
Общие правила
Фраза VALUE (ЗНАЧЕНИЕ) не должна противоречить другим фразам в описании данного или в описании иерархии данного. Применяются следующие правила:
если категория данного числовая, литерал-1 во фразе VALUE (ЗНАЧЕНИЕ) должен быть числовым; . _ ■ ■
если категория данного буквенная, буквенно-цифровая, буквенно-цифровая редактируемая или числовая редактируемая, литерал-1 во фразе VALUE (ЗНАЧЕНИЕ) должен быть нечисловым литералом. Литерал выравнивается в данном как если бы данное было описано как буквенно-цифровое (см. ч. 4, п. 4.3.6). Литеры редактирования во фразе PICTURE (ШАБЛОН) учитываются при определении размера данного, но не влияют на инициацию данного (см. ч. 6, п. 5.9). Поэтому значение для редактируемого данного должно быть указано в отредактированной форме;
на инициацию не влияют фразы BLANK WHEN ZERO (ПРОБЕЛ КОГДА НУЛЬ) или JUSTIFIED (СДВИНУТО), которые могут быть указаны.
Если в секции отчетов элементарная статья отчета, содержащая фразу VALUE (ЗНАЧЕНИЕ), не содержит фразу GROUP INDICATE (ОПРЕДЕЛЯЕТ ГРУППУ), то печатаемому данному присваивается указанное значение каждый раз при печати соответствующей группы отчета. Однако если-кроме фра.зы VALUE (ЗНАЧЕНИЕ) имеется также фраза GROUP INDICATE (ОПРЕДЕЛЯЕТ ГРУППУ)' указанное значение представляется только при существовании определенных условий во время выполнения (см. п. 3.13 настоящей части).
РАЗДЕЛ ПРОЦЕДУР В МОДУЛЕ ГЕНЕРАТОРА ОТЧЕТОВ
Общее описание
Если в исходной Кобол-программе имеется оператор USE BEFORE REPORTING (ИСПОЛЬЗОВАТЬ ДО ВЫДАЧИ) модуля генератора отчетов, раздел процедур содержит декларативные процедуры. Ниже приведен общий формат раздела процедур, когда имеется оператор USE BEFORE REPORTING (ИСПОЛЬЗОВАТЬ ДО ВЫДАЧИ) и (или) USE AFTER STANDARD EXCEPTION PROCEDURE (ИСПОЛЬЗОВАТЬ ПОСЛЕ СТАНДАРТНОЙ ПРОЦЕДУРЫ ОШИБКИ).
PROCEDURE DIVISION.
DECLARATIVES.
{имя-секции SECTION.
AFTER STANDARD EXCEPTION
P оператор USE
ROCEDURE
BEFORE REPORTING
[имя-параграфа.
[предложение] ... ] ...}...
END DECLARATIVES.
{имя-секции SECTION.
[имя-параграфа.
[предложение] .. . ] ...}...
РАЗДЕЛ ПРОЦЕДУР.
ДЕКЛАРАТИВЫ.
{СЕКЦИЯ имя-секции.
ПОСЛЕ СТАНДАРТНОЙ
П оператор ИСПОЛЬЗОВАТЬ
РОЦЕДУРЫ ОШИБКИ • ДО ВЫДАЧИ
[имя-параграфа.
[предложение]!... ] ...}... КОНЕЦ ДЕКЛАРАТИВ
{СЕКЦИЯ имя-секции.
[имя-параграфа.
[предложение] ... ] .
Оператор CLOSE (ЗАКРЫТЬ)
Назначение
Оператор CLOSE (ЗАКРЫТЬ) завершает обработку катушек (томов) и файлов с необязательной перемоткой и (или) замком или удалением, где это применимо.
Общий формат
{ имя-файла-1
CLOSE
wf|[F0R REMQVAL]
,VITU ( NO REWIND )
W ( КАТУШКУ |ТОМ
имя-файла-1
ЗАКРЫТЬ
ITH j LOCK j
имя-файла-1 [С УДАЛЕНИЕМ]
БЕЗ ПЕРЕМОТКИ
С ЗАМКОМ
Синтаксические правила
Файлы, на которые ссылается оператор CLOSE (ЗАКРЫТЬ), могут иметь различную организацию или доступ.
Допустимость вариантов в операторе CLOSE (ЗАКРЫТЬ) зависит от уровня модуля последовательного ввода-вывода, поддерживаемого реализацией (см. ч. 7, п. 4.2).
Общие правила ,
За исключением особо оговоренных случаев в ниже приведенных общих правилах, термины «катушка» и «том» являются синонимами и полностью взаимозаменяемы в операторе CLOSE (ЗАКРЫТЬ). Интерпретация последовательных файлов массовой памяти логически эквивалентна интерпретации файлов на ленте или аналогичных последовательных носителях. Файл, содержащийся в многофайловой ленточной среде, логически рассматривается как последовательный однокатушечный (однотомный) файл.
Оператор CLOSE (ЗАКРЫТЬ) может быть выполнен только для файла, который был открыт.
Для того, чтобы показать действие различных типов оператора CLOSE (ЗАКРЫТЬ) для различных носителей данных, все файлы отчетов разделяются на следующие категории:
без катушек (томов). Файл, носитель которого такой, что для него понятие перемотки катушек (томов) не имеет смысла;
последовательный однокатушечный (однотомный). Последовательный файл, который полностью располагается на одной катушке (томе);
последовательный многокатушечный (многотомный). Последовательный файл, который располагается на нескольких катушках (томах).
(3) Результаты выполнения каждого типа оператора CLOSE (ЗАКРЫТЬ) для каждой категории файла приведены в таблице.
Значения символов А—3 в таблице приведены ниже.
Влияние на обработанные ранее катушки (тома) выходного файла отчетов.
Формат оператора
GUOSE (ЗАКРЫТЬ)
Категория файла
Без катушек (томов)
Последовательный однокатушечный (однотомный)
Поел едователъный многокатушечный (многотомный)
CLOSE (ЗАКРЫТЬ)
в
в, ж
А, В, Ж
CLOSE WITH LOCK (ЗАКРЫТЬ С ЗАМКОМ)
в, д
в, д, ж
А, В, Д, Ж
CLOSE WITH NO REWIND (ЗАКРЫТЬ БЕЗ ПЕРЕМОТКИ)
в, з
Б, В
А, Б, В
CLOSE REEL/UNIT (ЗАКРЫТЬ КАТУШКУ/ТОМ)
Е
Е, Ж
Е, Ж
CLOSE REEL/U'NIT
FOR REMOVAL (ЗАКРЫТЬ КАТУШКУ/ТОМ С УДАЛЕНИЕМ)
Е
г. Е, Ж
Г, Е, Ж
Все катушки (тома) в файле отчетов, предшествующие текущей катушке (тому), закрываются, если для них не выполнялся оператор CLOSE REEL (ЗАКРЫТЬ КАТУШКУ) или CLOSE UNIT (ЗАКРЫТЬ ТОМ).
Б. Текущая катушка не перематывается.
Текущая катушка (том) остается в текущей позиции.
Закрыть выходной файл отчетов.
Если для файла указаны записи меток, метки обрабатываются в соответствии со стандартной процедурой обработки меток, определенной реализацией. Действия оператора CLOSE (ЗАКРЫТЬ) не определены, если записи меток указаны, по отсутствуют, или когда записи меток не указаны, но присутствуют.
Если записи меток не указаны для файла отчетов, метки не обрабатываются, но выполняются операции закрытия, определенные реализацией.
Г. Удаление катушки (тома).
Если это применимо, производится перемотка текущей катушки или тома и логическое удаление их из единицы исполнения, однако, катушка или том могут стать снова доступными в порядке расположения катушек или томов в файле отчета, если за выполнением оператора CLOSE (ЗАКРЫТЬ) без варианта REEL (КАТУШКУ) или UNIT (ТОМ) для этого файла отчетов будет выполнен оператор OPEN (ОТКРЫТЬ) для этого же файла отчетов.
Д. Закрыть с замком.
Файл отчетов закрывается (запирается) и не может быть открыт во время выполнения данной единицы исполнения.
Е. Закрыть катушку или том.
Выходной файл отчетов (носитель в виде катушки или тома).
Выполняются следующие операции:
стандартная процедура обработки конечных меток катушки или тома;
смена катушки (тома). Указатель текущего тома обновляется и указывает на новую катушку (том);
Выполняется стандартная процедура обработки начальных меток катушки (тома);
Следующая операция занесения записи, относящаяся к этому файлу, заносит следующую логическую запись па следующую катушку (том) файла.
Выходной файл отчета (носитель не в виде катушки или тома).
Выполнение этого оператора считается успешным. Файл остается открытым, и никакие действия, кроме указанных в общем правиле 4, не выполняются'
/К. Перемотка.
Текущая катушка или аналогичное устройство устанавливается на физическое начало.
Оператор CLOSE (ЗАКРЫТЬ) выполняется так, как будто нет необязательных фраз.
) Выполнение оператора CLOSE (ЗАКРЫТЬ) приводит к обновлению значения состояния ввода-вывода, связанного с именем файла-1 (см. ч. 7, п. 1.3.5).
) Все начатые отчеты, связанные с файлом отчетов, должны быть закончены посредством выполнения оператора TERMINATE (ЗАКОНЧИТЬ) до выполнения оператора CLOSE (ЗАКРЫТЬ) для этого файла отчетов.
) После успешного завершения оператора CLOSE (ЗАКРЫТЬ) без фразы REEL (КАТУШКУ) или UNIT (ТОМ) файл отчетов больше не входит в число открытых файлов и файл отчетов больше пе связан с определителем файла.
) Если в операторе CLOSE (ЗАКРЫТЬ) указано более одного имени-файла-1, результат выполнения этого оператора CLOSE (ЗАКРЫТЬ) такой же, как если бы отдельный оператор CLOSE (ЗАКРЫТЬ) был написан для каждого имени-файла-1 в том же порядке, в каком эти имена файлов указаны в операторе CLOSE (ЗАКРЫТЬ).
4.3 Оператор GENERATE (ГЕНЕРИРОВАТЬ)
Назначение
Оператор GENERATE (ГЕНЕРИРОВАТЬ) побуждает СУГО составить отчет в соответствии с описанием этого отчета в секции отчетов раздела данных.
Общий формат
GENERATE [1га"’М""0Г°-')
— ( имя-отчета-1 J
ГЕНЕРИРОВАТЬ I ИМЯ’ДаНН0Г°-1 )
(и м я - отч ета -1 j
Синтаксические правила
Имя-данного-1 должно относиться к группе отчета типа фрагмент и может уточняться именем отчета.
Имя-отчета-1 может использоваться только тогда, когда в описании этого отчета содержится:
фраза CONTROL (УПРАВЛЕНИЕ) и
не более одной группы отчета типа фрагмент, и
по крайней мере одна группа тела отчета.
Общие правила
По оператору GENERATE имя-отчета-1 (ГЕНЕРИРОВАТЬ имя-отчета-1) СУГО выполняет итоговую обработку. Если все выполняемые для отчета операторы GENERATE (ГЕНЕРИРОВАТЬ) имеют вид GENERATE имя-отчета-1 (ГЕНЕРИРОВАТЬ имя-отчета-1), то составляемый отчет называется итоговым отчетом. Итоговый отчет — отчет, в котором не представлена ни одна группа отчета типа фрагмент.
По оператору GENERATE имя-данного-1 (ГЕНЕРИРОВАТЬ имя-дапного-1) выполняется обработка фрагмента, которая включает определенную обработку, специфическую для группы отчета типа фрагмент, указанную оператором GENERATE (ГЕНЕРИРОВАТЬ). Обычно выполнение оператора GENERATE имя-данного-1 (ГЕНЕРИРОВАТЬ имя-данного-1) приводит к представлению указанной группы отчета типа фрагмент.
При выполнении первого по времени оператора GENERATE (ГЕНЕРИРОВАТЬ) для данного отчета СУГО запоминает значения управляющих данных. Во время выполнения второго и последующих операторов для того же отчета и до распознавания прерывания управления СУГО использует этот набор управляющих данных для проверки наличия прерывания управления. Если встретилось прерывание управления, СУГО запоминает новую последовательность значений управляющих данных, которая с этого времени используется для определения прерывания управления, пока не встретится очередное прерывание управления.
В процессе представления отчета, если СУГО должна осуществить переход на новую страницу для представления группы тела отчета, выполняются автоматические функции обработки групп отчета типа заголовок страницы и концовка страницы, если они определены (см. п. 3.10 настоящей части).
При выполнении первого по времени оператора GENERATE (ГЕНЕРИРОВАТЬ) для данного отчета СУГО обрабатывает названные ниже группы отчета в порядке их перечисления (если они определены в описании отчета), а также группы отчета тина заголовок страницы и концовка страницы, как это списано в об- щем правиле 4. Действия, выполняемые при обработке каждого типа группы отчета, объяснены в соответствующем параграфе (см. п. 3.20 настоящей части).
Обрабатывается группа отчета типа заголовок отчета.
Обрабатывается группа отчета типа заголовок страницы.
Обрабатываются все группы отчета типа управляемый заголовок, начиная от старшего уровня иерархии управления к младшим уровням.
Если выполняется оператор GENERATE имя-данного-1 (ГЕНЕРИРОВАТЬ имя-данного-1), выполняется обработка указанной группы отчета типа фрагмент. Если выполняется оператор GENERATE имя-отчета-1 (ГЕНЕРИРОВАТЬ имя-отчета-1), то выполняются некоторые действия, сопровождающие обработку группы отчета типа фрагмент (см. п. 3.20 настоящей части).
Побачили розбіжність з офіційним текстом?