ГОСТ 22558-89 сторінка 88 з 116
(6) В процессе выполнения последующих по времени операторов GENERATE (ГЕНЕРИРОВАТЬ) для данного отчета выполняется ряд описанных ниже действий в порядке следования их описания, а также в соответствии с общим правилом 4 обрабатываются группы типа заголовок страницы и концовка страницы. Действия, выполняемые при обработке каждого типа группы отчета объяснены в соответствующем параграфе (см. п. 3.20 настоящей части).
а) Проверка на наличие прерывания управления. Правила определения равенства управляющих данных такие же, как и для условий отношения.
Если встретилось прерывание управления, то:
для процедур, определенных оператором USE (ИСПОЛЬЗОВАТЬ) и фраз SOURCE (ИСТОЧНИК), соответствующих группам отчета типа управляемая концовка, обеспечивается возможность доступа к значениям управляющих данных, вызвавшим данное прерывание управления (см. п. 3.20 настоящей части);
обработка групп отчета типа управляемая концовка в порядке от младшего к старшим уровням иерархии управления. Обрабатываются только те группы отчета типа управляемая концовка, уровень иерархии которых не старше самого высокого уровня, на котором встретилось прерывание управления;
обработка групп отчета типа управляемый заголовок в порядке от старшего к младшим уровням иерархии. Обрабатываются только те из них, уровень иерархии управления которых не старше самого высокого уровня, на котором встретилось прерывание управления.
Если выполняется оператор GENERATE имя-данного-1 (ГЕНЕРИРОВАТЬ имя-данного-1), производится обработка указанной группы отчета типа фрагмент. Если выполняется оператор GENERATE имя-отчета-1 (ГЕНЕРИРОВАТЬ имя-отчета-1), то выполняются некоторые действия, входящие в обработку группы отчета типа фрагмент (см. п. 3.20 настоящей части).
Операторы GENERATE (ГЕНЕРИРОВАТЬ) для отчета могут быть выполнены только после выполнения оператора INITIATE (НАЧАТЬ) и до выполнения оператора 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 (ОТКРЫТЬ) с вариантом OUTPUT (ВЫХОДНОЙ), во время выполнения оператора 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 PROCEDURE (ИСПОЛЬЗОВАТЬ ПОСЛЕ СТАНДАРТНОЙ ПРОЦЕДУРЫ ОШИБКИ)
Назначение
Оператор USE AFTER STANDARD EXCEPTION PROCEDURE (ИСПОЛЬЗОВАТЬ ПОСЛЕ СТАНДАРТНОЙ ПРОЦЕДУРЫ ОШИБКИ) указывает процедуры для обработки ошибок ввода-вывода, являющиеся дополнением к стандартным процедурам, обеспечиваемым системой управления вводом-выводом.
Общий формат
USE AFTER STANDARD (PROCEDURE ON
(ERROR J
{имя-файла-1} .. . ’
OUTPUT
EXTEND
ИСПОЛЬЗОВАТЬ ПОСЛЕ СТАНДАРТНОЙ ПРОЦЕДУРЫ
ОШИБКИ
і {имя-файла-1}...
ДЛЯ ВЫХОДНЫХ
ДОПОЛНЯЕМЫХ
Синтаксические правила
Оператор USE (ИСПОЛЬЗОВАТЬ), если он имеется, должен непосредственно следовать за заголовком секции в декларативной части раздела процедур и должен быть один в предложении. Остальная часть декларативной секции должна состоять из нуля, одного или нескольких процедурных параграфов, определяющих процедуры, которые должны использоваться.
Побачили розбіжність з офіційним текстом?