Перейти до вмісту
ГОСТ 22558-89
/ 116

(6) В процессе выполнения последующих по времени операто­ров GENERATE (ГЕНЕРИРОВАТЬ) для данного отчета выполня­ется ряд описанных ниже действий в порядке следования их описа­ния, а также в соответствии с общим правилом 4 обрабатываются группы типа заголовок страницы и концовка страницы. Действия, выполняемые при обработке каждого типа группы отчета объясне­ны в соответствующем параграфе (см. п. 3.20 настоящей части).

а) Проверка на наличие прерывания управления. Правила оп­ределения равенства управляющих данных такие же, как и для ус­ловий отношения.

Если встретилось прерывание управления, то:

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

обработка групп отчета типа управляемая концовка в по­рядке от младшего к старшим уровням иерархии управления. Об­рабатываются только те группы отчета типа управляемая концов­ка, уровень иерархии которых не старше самого высокого уровня, на котором встретилось прерывание управления;

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

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

Операторы GENERATE (ГЕНЕРИРОВАТЬ) для отчета могут быть выполнены только после выполнения оператора INITI­ATE (НАЧАТЬ) и до выполнения оператора TERMINATE (ЗА­КОНЧИТЬ) для этого отчета.

Оператор INITIATE (НАЧАТЬ)

Назначение

Оператор INITIATE (НАЧАТЬ) побуждает систему управле­ния генератором отчетов начать составление отчета.

Общий формат

INITIATE {имя-отчета-1}...

НАЧАТЬ {имя-отчета-1} ...

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

Каждое имя-отчета-1 должно быть определено статьей опи­сания отчета в секции отчетов раздела данных.

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

Оператор INITIATE (НАЧАТЬ) выполняет следующие дей­ствия для каждого указанного отчета:

все счетчики сумм устанавливаются в нуль;

LINE-COUNTER (СЧЕТЧИК-СТРОК) устанавливается в нуль;

PAGE-COUNTER (СЧЕТЧИК-СТРАНИЦ) устанавливается в единицу.

Оператор INITIATE (НАЧАТЬ) не открывает файл, с кото­рым связан отчет. Более того, для этого файла до выполнения опе­ратора INITIATE (НАЧАТЬ) должен быть выполнен оператор OPEN (ОТКРЫТЬ) с вариантом OUTPUT (ВЫХОДНОЙ) или EXTEND (ДОПОЛНЯЕМЫЙ).

Следующий оператор INITIATE (НАЧАТЬ) для имени-от­чета-1 не может быть выполнен до тех пор, пока не будет выполнен оператор TERMINATE (ЗАКОНЧИТЬ) для этого отчета, следую­щий за предыдущим оператором INITIATE (НАЧАТЬ).

Если в операторе INITIATE (НАЧАТЬ) указано более од­ного имени-отчета, результат выполнения этого оператора такой, как если бы был записан отдельный оператор INITIATE (НА­ЧАТЬ) для каждого имени-отчета в том порядке, в каком имена- отчетов упоминались в операторе INITIATE (НАЧАТЬ).

Оператор OPEN (ОТКРЫТЬ)

Назначение

Оператор OPEN (ОТКРЫТЬ) инициирует обработку файлов отчетов.

Общий формат

(OUTPUT {имя-файла-1 [WITH NO REWIND]}... 1

EXTEND {имя-файла-2}... |‘

В ОТКРЫТЬ

ЫХОДНОЙ {имя-файла-1 [БЕЗ ПЕРЕМОТКИ]}...

ДОПОЛНЯЕМЫЙ {имя-файла-2}

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

Оператор OPEN (ОТКРЫТЬ) для файла отчетов может содержать только вариант OUTPUT (ВЫХОДНОЙ) или EXTEND (ДОПОЛНЯЕМЫЙ).

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

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

Успешное выполнение оператора OPEN (ОТКРЫТЬ) дела­ет файл доступным для обработки и переводит его в режим откры­того файла. Успешное выполнение оператора OPEN (ОТКРЫТЬ) связывает файл с именем-файла посредством определителя файла.

Файл доступен, если он физически имеется в наличии и распоз­нан системой управления вводом-выводом. Приведенная ниже таблица демонстрирует результаты открытия доступных и недо­ступных файлов.

Фраза

Файл доступен

4айл недоступен

OUTPUT

Нормальное открытие;

Открытие приводит к

(ВЫХОДНОЙ)

файл не содержит записей

созданию файла

EXTEND (ДОПОЛНЯЕМЫЙ)

Нормальное открытие

Открытие неуспешное

EXTEND (ДОПОЛНЯЕМЫЙ) (необязательный файл)

Нормальное открытие

Открытие приводит к созданию файла

Если файл не открыт, не может быть выполнен ни один оператор с явной или неявной ссылкой на файл, за исключением оператора OPEN (ОТКРЫТЬ).

Оператор OPEN (ОТКРЫТЬ) для файла отчетов должен быть выполнен до выполнения оператора INITIATE (НАЧАТЬ) для любого отчета, содержащегося в этом файле.

Файл отчетов может быть открыт с вариантом OUTPUT (ВЫХОДНОЙ) или EXTEND (ДОПОЛНЯЕМЫЙ) в одной и той же единице исполнения.

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

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

а) когда указана фраза OUTPUT (ВЫХОДНОЙ), выполнение оператора OPEN (ОТКРЫТЬ) приводит к записи меток в соответ­ствии с процедурами, определенными реализацией для записи вы­ходных меток.

Действия оператора OPEN (ОТКРЫТЬ) не определены, когда записи меток указаны, но в файле отсутствуют, или не указаны, но присутствуют.

Если во время выполнения оператора OPEN (ОТКРЫТЬ) возникает условие противоречия свойств файла, выполнение опера­тора OPEN (ОТКРЫТЬ) неуспешно (см. ч. 7, п. 1.3.7).

Вариант NO REWIND (БЕЗ ПЕРЕМОТКИ) должен ис­пользоваться только в следующих случаях:

для последовательных однокатушечных (однотомных) фай­лов (см. п. 4.2 настоящей части);

для последовательных файлов, целиком содержащихся на одной катсшке ленты в среде многофайловых лепт (см. ч. 7, п.2.11).

Вариант NO REWIND (БЕЗ ПЕРЕМОТКИ) игнорируется, если он не применим к внешнему носителю, на котором располага­ется файл.

Если внешний носитель для файла допускает перемотку, применяются следующие правила:

если ни один из вариантов EXTEND (ДОПОЛНЯЕМЫЙ) или NO REWIND (БЕЗ ПЕРЕМОТКИ) не указан, выполнение оператора OPEN (ОТКРЫТЬ) приводит к переустановке файла в начало;

если задана фраза NO REWIND (БЕЗ ПЕРЕМОТКИ), при выполнении оператора OPEN (ОТКРЫТЬ) переустановка файла не производится; файл уже должен быть установлен в начало до выполнения оператора OPEN (ОТКРЬІТЬ).

(10) Если задан вариант EXTEND (ДОПОЛНЯЕМЫЙ), при выполнении оператора OPEN (ОТКРЫТЬ) файл устанавливается непосредственно за последней логической записью этого файла. Последней логической записью последовательного файла является последняя занесенная в файл запись.

(И) Если задан вариант EXTEND (ДОПОЛНЯЕМЫЙ) и фра­за LABEL RECORDS (МЕТКИ) указывает, что записи меток при­сутствуют, выполнение оператора OPEN (ОТКРЫТЬ) включает следующие действия:

начальные метки файла обрабатываются только для одно­катушечных (однотомных) файлов;

начальные метки катушки (тома) обрабатываются па по­следней имеющейся катушке (томе), как если бы файл открывался с вариантом INPUT (ВХОДНОЙ);

имеющиеся конечные метки файла обрабатываются, как ес­ли бы файл был открыт с вариантом INPUT (ВХОДНОЙ). Эти метки затем удаляются;

т) затем обработка продолжается, как если бы файл был от­крыт как OUTPUT (ВЫХОДНОЙ).

Интерпретация файла, содержащегося в среде многофай­ловых лент, логически эквивалентна интерпретации последователь­ного файла, содержащегося в среде однофайловых лепт.

Если совокупность файлов размещена па одной катушке ленты и на один из этих файлов имеется ссылка в операторе OPEN (ОТКРЫТЬ), то применяются следующие правила:

одновременно и открытом состоянии может находиться не более одного файла;

если один из файлов, соответствующих имени-файла, явля­ется субъектом оператора OPEN (ОТКРЫТЬ) с вариантом OUT­PUT (ВЫХОДНОЙ), во время выполнения оператора OPEN (ОТ­КРЫТЬ) на соответствующей катушке должны уже существовать все файлы, номер позиций которых меньше, чем иомер позиции дан­ного файла. Кроме того, в это время па катушке не могут сущест­вовать файлы, номер позиции которых больше номера позиции дан­ного файла;

каждый из файлов должен быть последовательным файлом.

(141 Для необязательного файла, являющегося недоступным, успешное выполнение оператора OPEN (ОТКРЫТЬ) с вариантом EXTEND (ДОПОЛНЯЕМЫЙ) создает файл. Это создание проис­ходит так, как если бы в указанном порядке выполнялись следую­щие операторы:

OPEN OUTPUT имя-файла.

CLOSE имя-файла.

ОТКРЫТЬ ВЫХОДНОЙ имя-файла.

ЗАКРЫТЬ и м я - ф а й л а.

. За этими операторами следует выполнение оператора OPEN (ОТКРЫТЬ), указанного в исходной программе.

Успешное выполнение оператора OPEN (ОТКРЫТЬ) с вариан­том OUTPUT (ВЫХОДНОЙ) создает файл. После успешного соз­дания такой файл не содержит записей данных.

После успешного выполнения оператора OPEN (ОТ­КРЫТЬ) указатель текущего тома устанавливается на:

катушку (том), содержащую последнюю логическую запись дополняем ого фа йла;

новую катушку (том) для недоступного выходного или до­полняемого файла.

Выполнение оператора OPEN (ОТКРЫТЬ) приводит к обновлению значения состояния ввода-вывода, соответствующего имени-файла (см. ч . 7, п. 1.3.5).

Если в операторе OPEN (ОТКРЫТЬ) указано более одно­го имени-файла, результат выполнения этого оператора OPEN (ОТКРЫТЬ) такой, как если бы отдельный оператор OPEN (ОТ­КРЫТЬ) был написан для каждого имени-файла в том порядке, как они указаны в операторе OPEN (ОТКРЫТЬ).

Минимальный и максимальный размеры записей файла устанавливаются во время создания файла и не могут изменяться в дальнейшем.

Оператор SUPPRESS (ПОДАВИТЬ)

Н а з и а ч е и и е

Оператор SUPPRESS побуждает систему управления генера-t тором отчетов исключить представление группы отчета.

Общий формат

SUPPRESS PRINTING

ПОДАВИТЬ ПЕЧАТЬ

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

Оператор SUPPRESS (ПОДАВИТЬ) может указываться только в процедуре USE BEFORE REPORTING (ИСПОЛЬЗО­ВАТЬ ДО ВЫДАЧИ).

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

) Оператор SUPPRESS (ПОДАВИТЬ) исключает представ­ление только группы отчета, названной в процедуре USE (ИС­ПОЛЬЗОВАТЬ), в которой появляется оператор SUPPRESS (ПО­ДАВИТЬ).

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

) При выполнении оператора SUPPRESS (ПОДАВИТЬ) система управления генератором отчетов информируется о запре­щении следующих функций группы отчета:

представление печатных строк группы отчета;

обработка всех фраз LINE (НОМЕР СТРОКИ) для группы отчета;

обработка фразы NEXT GROUP (СЛЕДУЮЩАЯ ГРУППА) для группы отчета;

корректировка регистра LINE-COUNTER (СЧЕТЧИК- СТРОК).

Оператор TERMINATE (ЗАКОНЧИТЬ)

Назначение

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

Общий формат

TERMINATE {имя-отчета-1}...

ЗАКОНЧИТЬ {имя-отчета-1}.. .

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

Имя-отчета-1 должно быть определено статьей описания отчета в секции отчетов раздела данных.

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

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

Если для данного отчета между выполнением операторов INITIATE (НАЧАТЬ) и TERMINATE (ЗАКОНЧИТЬ) не был вы­полнен ни один оператор GENERATE (ГЕНЕРИРОВАТЬ), опера­тор TERMINATE (ЗАКОНЧИТЬ) не приводит к обработке ника­ких групп отчета и выполнению соответствующих действий СУГО.

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

Оператор TERMINATE (ЗАКОНЧИТЬ) может быть вы­полнен для отчета, если только оператору TERMINATE (ЗАКОН­ЧИТЬ) предшествовал по времени оператор INITIATE (НАЧАТЬ) для этого отчета и никакой оператор TERMINATE (ЗАКОНЧИТЬ) еще не был выполнен для него.

Если в операторе TERMINATE (ЗАКОНЧИТЬ) указано более одного имени-отчета, результат выполнения такого оператора TERMINATE (ЗАКОНЧИТЬ) такой же, как если бы отдельный оператор TERMINATE (ЗАКОНЧИТЬ) был записан для каждого имени-отчета в том же порядке, в каком имена-отчетов указаны в операторе TERMINATE (ЗАКОНЧИТЬ).

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

Оператор USE AFTER STANDARD EXCEPTION PROCE­DURE (ИСПОЛЬЗОВАТЬ ПОСЛЕ СТАНДАРТНОЙ ПРОЦЕДУ­РЫ ОШИБКИ)

Назначение

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

Общий формат

USE AFTER STANDARD (PROCEDURE ON

(ERROR J

{имя-файла-1} .. . ’

OUTPUT

EXTEND

ИСПОЛЬЗОВАТЬ ПОСЛЕ СТАНДАРТНОЙ ПРОЦЕДУРЫ

ОШИБКИ

і {имя-файла-1}...

ДЛЯ ВЫХОДНЫХ

ДОПОЛНЯЕМЫХ

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

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

Побачили розбіжність з офіційним текстом?

Повідомити про неточність

Напишіть, що саме розходиться з офіційною публікацією. Код документа вкажіть у повідомленні — так ми швидше знайдемо потрібне місце.

Перейти до форми зворотного зв'язку

Дивіться також

Весь розділ →