ГОСТ 22558-89 сторінка 34 з 116
(кроме варианта USAGE IS DISPLAY (ДЛЯ ВЫДАЧИ)).
((3) Несколько статей с номером уровня 01, подчиненных одному и тому же заданному индикатору уровня, отличному от индикатора уровня RD (ОО) для статьи описания отчета, переопределяют одно и то же поле памяти.
.5.4. Фраза BLANK WHEN ZERO (ПРОБЕЛ КОГДА НУЛЬ)
Назначение
Фраза BLANK WHEN ZERO (ПРОБЕЛ КОГДА НУЛЬ) позволяет заменить данное пробелом, когда его значение является нулевым.
О б щ и й формат
BLANK WHEN ZERO
.ПРОБЕЛ КОГДА НУЛЬ
Синтаксические правила
Фраза BLANK WHEN ZERO (ПРОБЕЛ КОГДА НУЛЬ) может быть использована только для элементарного данного, шаблон которого определен как числовой или числовой редактируемый (п. 5.9 настоящей части).
Числовые и числовые редактируемые данные, описанные с фразой BLANK WHEN ZERO (ПРОБЕЛ КОГДА НУЛЬ), должны быть явно или неявно описаны как USAGE IS DISPLAY (ДЛЯ ВЫДАЧИ).
О б щ и е правила
Если в описании данного указана фраза BLANK WHEN ZERO (ПРОБЕЛ КОГДА НУЛЬ), и значение этого данного равно нулю, это данное заменяется пробелами.
Если в данном, имеющем числовой шаблон, использована фраза BLANK WHEN ZERO (ПРОБЕЛ КОГДА НУЛЬ), категория данного считается числовой редактируемой.
Фраза имя-данного или FILLER (ЗАПОЛНИТЕЛЬ)
Назначение
Имя данного задает имя описываемого данного. Слово FILLER (ЗАПОЛНИТЕЛЬ) задает элементарное данное в логической записи, к которому явно нельзя обращаться.
Общий формат
имя-данного-1
FILLER
имя-данного-1
ЗАПОЛНИТЕЛЬ
ЗАП
Синтаксические правила
В секциях рабочей памяти, коммуникации, связи или в секции файлов имя-данного или слово FILLER (ЗАПОЛНИТЕЛЬ), если одно из них указано, должны непосредственно следовать в статье описания данного за номером уровня.
ЗАП является сокращением слова ЗАПОЛНИТЕЛЬ.
О б щ и е правила
Если эта фраз опущена, то считается, что в описании дан» ного указана фраза FILLER (ЗАПОЛНИТЕЛЬ).
Слово FILLER (ЗАПОЛНИТЕЛЬ) может быть использовано в качестве имени элементарного данного в записи. К данному FILLER (ЗАПОЛНИТЕЛЬ) запрещено явное обращение.
Тем не менее, слово FILLER (ЗАПОЛНИТЕЛЬ) может использоваться в качестве условной переменной, что не требует явного обращения к данному, названному FILLER (ЗАПОЛНИТЕЛЬ) (а только к его значению).
Фраза JUSTIFIED (СДВИНУТО)
Назначение
Фраза JUSTIFIED (СДВИНУТО) задает нестандартное расположение данных в поле, отведенном для данного.
Общий формат
I RIGHT
JUSTIFIED
I JUST
СДВИНУТО ВПРАВО
Синтаксические правила
Фраза JUSTIFIED (СДВИНУТО) может быть задана только на уровне элементарного данного.
Фраза JUST является сокращением JUSTIFIED.
Фраза JUSTIFIED (СДВИНУТО) не может быть задана для данного, описанного как числовое, числовое редактируемое или буквенно-цифровое редактируемое.
Фраза JUSTIFIED (СДВИНУТО) не может быть задана для индексного данного.
Общие правила
Если принимающее данное описывается с фразой JUSTIFIED (СДВИНУТО) и пересылаемое данное по размеру больше принимающего, то отбрасываются самые левые литеры. Если описание принимающего данного имеет JUSTIFIED (СДВИНУТО) и его размер превышает размер пересылаемого данного, то пересылаемое значение располагается с выравниванием к самой правой позиции литеры и дополняется слева пробелами.
Если фраза JUSTIFIED (СДВИНУТО) опущена, применяются стандартные правила выравнивания элементарных данных (см. ч. 4, п. 4.3.6).
Номер уровня
Назначение
Номер уровня указывает на иерархию данных внутри логической записи. Кроме того, он используется, чтобы определить статьи для |имен-условий,/ данных рабочей памяти, данных связи,
] а также для указания переименований I .
О б щ и й формат
номер-уровня
Синтаксические правила
Номер-уровня обязательно должен быть первым элементом в каждой статье описания данного.
Статьи описания данных, подчиненных статьям FD (ОФ), СР (ОК) или SD (ОС), должны иметь номера уровней от 01 до 49, 1 66 или 88 I .
Статьи описания данных в секции рабочей памяти и секции связи должны иметь номера уровней от 1 до 49, I 66, | 77 | или | |~~88~[.
О б щ и е правила
Номер уровня 01 определяет первую статью в каждом описании записи.
Отдельным статьям, для которых понятие уровня не имеет смысла, присваиваются специальные номера-уровня:
номер-уровня 77 присваивается для определения несвязанных данных рабочей памяти, несвязанных данных, используемых для связи, и может быть использован только в формате 1 статьи описания данных (см. п. 5.3 настоящей части);
номер-уровня 66 определяет статью переименования и может использоваться только в формате 2 статьи описания данных (см. п. 5.3 настоящей части);
номер-уровня 88 присваивается статьям, которые определяют имена условий, связанных с условными переменными, и может быть использован только в формате 3 статьи описания ■ данных (см. п, 5.3 настоящей части).
Несколько статей уровня 01, подчиненных одному и тому же индикатору уровня, отличному от RD (ОО), неявно переопределяют одно и то же поле памяти.
Фраза OCCURS (ПОВТОРЯЕТСЯ)
Назначение
Фраза OCCURS (ПОВТОРЯЕТСЯ) исключает необходимость отдельных статей описания для повторяющихся данных и дает необходимую информацию для индексирования.
Общий формат
Формат 1
OCCURS целое-2 TIMES
[[ ASCENDING 1 I DESCENDING
KEY IS {имя-данного-2} . . .
[INDEXED BY {имя-индекса-1} ... ]
ПОВТОРЯЕТСЯ целое-2 РАЗ
Г__ [ ВОЗРАСТАНИЮ) .ПІГПІД , 1
[П° ( УБЫВАНИЮ l1'-71104* !«<я-ла»ного-2). . .
[ИНДЕКСИРУЕТСЯ {имя-индекса-1}.. . ]
Формат 2
OCCURS целое-1 ТО целое-2 TIMES DEPENDING ON имя-данного-1
[[ ASCENDING )
I DESCENDING | KEY IS
[INDEXED BY {имя-индекса-1} . . . ]
ПОВТОРЯЕТСЯ ОТ целое-1 ДО целое-2 РАЗ 4
(ВОЗРАСТАНИЮ 1 lznv>17ft , ПО УБЫВАНИЮ КЛЮЧА {имя-данного-2} . ..
[ИНДЕКСИРУЕТСЯ {имя-индекса-1} . .. ]
Синтаксические правила
Фраза OCCURS (ПОВТОРЯЕТСЯ) не может быть задана в статьях описания данных с номерами уровней 01, | 66, | 77,
88 и в статьях описания данных, имеющих подчиненными переменно повторяющиеся данные.
Имя-данного-1 имя-данного-2 могут быть уточнены.
Имя-данного-2 должно быть либо именем статьи, содержащей фразу OCCURS (ПОВТОРЯЕТСЯ), либо именем статьи, подчиненной статье, содержащей фразу OCCURS (ПОВТОРЯЕТСЯ).
Имя-данного-2 должно быть указано без требуемого для него индексирования.
Если указаны целое-1 и целое-2, то целое-1 должно быть больше или равно 0, а целое-2 должно быть больше целого-1.
Имя-данного-1 должно быть описано как целое.
В формате 2 данное, определенное именем-данного-1, не должно располагаться в области памяти, занимаемой данным, статья описания которого содержит фразу OCCURS (ПОВТОРЯЕТСЯ).
Если фраза OCCURS (ПОВТОРЯЕТСЯ) указана в статье описания данного, включенного в статью описания записи, содержащую фразу EXTERNAL (ВНЕШНЕЕ), то имя-данного-1, если оно указано, должно ссылаться на данное, описанное в том же разделе данных, со свойством EXTERNAL (ВНЕШНЕЕ).
Если фраза OCCURS (ПОВТОРЯЕТСЯ) указана в статье описания данного, подчиненного статье, содержащей фразу GLOBAL (ГЛОБАЛЬНОЕ), то имя-данного-1, если оно указано, должно быть глобальным именем и должно ссылаться на данное, описанное в том же разделе данных.
За статьей описания данного, содержащей фразу OCCURS (ПОВТОРЯЕТСЯ) формата 2, могут следовать только подчиненные ей статьи описания данных.
Данное, определяемое именем-данного-2, не должно содержать фразу OCCURS (ПОВТОРЯЕТСЯ) за исключением случая, когда имя-данного-2 является субъектом статьи.
Между статьями описания данных, указанными именами данных в варианте KEY IS (ПО ВОЗРАСТАНИЮ/УБЫВА-
ПО VKRTRAI4HTC> ? КЛЮЧА {имя-данного-2}. ..
[ИНДЕКСИРУЕТСЯ {имя-индекса-1}... ]
5.8.3. Синтаксические правила
Фраза OCCURS (ПОВТОРЯЕТСЯ) не может быть задана в статьях описания данных с номерами уровней 01, | 66, | 77,
88 и в статьях описания данных, имеющих подчиненными переменно повторяющиеся данные.
Имя-данного-1 имя-данного-2 могут быть уточнены.
Имя-данного-2 должно быть либо именем статьи, содержащей фразу OCCURS (ПОВТОРЯЕТСЯ), либо именем статьи, подчиненной статье, содержащей фразу OCCURS (ПОВТОРЯЕТСЯ).
Имя-данного-2 должно быть указано без требуемого для него индексирования.
Если указаны целое-1 и целое-2, то целое-1 должно быть больше или равно 0, а целое-2 должно быть больше целого-1.
Имя-данного-1 должно быть описано как целое.
В формате 2 данное, определенное именем-данного-1, не должно располагаться в области памяти, занимаемой данным, статья описания которого содержит фразу OCCURS (ПОВТОРЯЕТСЯ).
Если фраза OCCURS (ПОВТОРЯЕТСЯ) указана в статье описания данного, включенного в статью описания записи, содержащую фразу EXTERNAL (ВНЕШНЕЕ), то имя-данного-1, если оно указано, должно ссылаться на данное, описанное в том же разделе данных, со свойством EXTERNAL (ВНЕШНЕЕ).
Если фраза OCCURS (ПОВТОРЯЕТСЯ) указана в статье описания данного, подчиненного статье, содержащей фразу GLOBAL (ГЛОБАЛЬНОЕ), то имя-данного-1, если оно указано, должно быть глобальным именем и должно ссылаться на данное, описанное в том же разделе данных.
За статьей описания данного, содержащей фразу OCCURS (ПОВТОРЯЕТСЯ) формата 2, могут следовать только подчиненные ей статьи описания данных.
Данное, определяемое именем-данного-2, не должно содержать фразу OCCURS (ПОВТОРЯЕТСЯ) за исключением случая, когда имя-данного-2 является субъектом статьи.
Между статьями описания данных, указанными именами данных в варианте KEY IS (ПО ВОЗРАСТАНИЮ/УБЫВА-
; НИЮ КЛЮЧА), и предметом этой статьи не должно быть ста- ; тьи, содержащей фразу OCCURS (ПОВТОРЯЕТСЯ).
Фраза INDEXED BY (ИНДЕКСИРУЕТСЯ) обязательна, (если обращение к предмету этой статьи или статьи, ей подчиненной, 'осуществляется с помощью имени-индекса. Имя-индекса, идентифицируемое этой фразой, не определяется в исходной программе, так как его размещение и формат зависят от машины, и, не будучи данными, имена индексов не могут быть связаны с какой-либо структурой данных.
Имя-индекса-1 должно быть однозначным.
•5.8.4. Общие правила
Исключая фразу OCCURS (ПОВТОРЯЕТСЯ), все фразы описания данных, относящиеся к данному, описание которого включает фразу OCCURS (ПОВТОРЯЕТСЯ), применяются к каждому вхождению описанного данного,
Число вхождений предмета статьи определяется следующим образом:
а) в формате 1 значение целого-2 представляет точное число повторений;
: б) в формате 2 текущее значение данного, именуемого име-
нем-данного-1, представляет число повторений.
Формат 2 указывает, что предмет статьи имеет переменное і число повторений. Значение целого-2 представляет максималь- і ное число повторений, а значение целого-1 — минимальное. Это не означает, что размер предмета статьи переменный, а говорит лишь только о том, что переменно число его повторений.
Всякий раз, когда ссылаются на предмет статьи или на под- : чиненное ему данное или на данное, которому подчиняется пред- ! мет статьи, значение данного, определенное именем-данного-1, ' должно принадлежать диапазону от целого-1 до целого-2. Зна- : чения данных, номера вхождений которых превышают значение . имени-данного-1, не определены.
При обращении к групповому данному, содержащему данное, в статье описания которого содержится фраза OCCURS (ПОВТОРЯЕТСЯ) формата 2, используется только часть области таблицы, определяемая следующим образом:
если данное, определяемое именем-данного-1, не входит в группу, то используется только часть области таблицы, определяемая значением имени-данного-1 в момент начала обработки;
если данное, определенное именем-данного-1, входит в группу и групповое данное пересылается, то в пересылке будет использоваться только часть области таблицы, определенная значением имени-данного-1 в момент начала работы. Если группа есть принимающее данное, то будет использоваться максимальная длина группы.
Вариант DESCENDING (ASCENDING) KEY (ПО УБЫ- ВАНИЮ/ВОЗРАСТАНИЮ КЛЮЧА) указывает, что повторяющиеся данные упорядочены в возрастающем или убывающем порядке в соответствии со значениями имени-данного-2, имени- данного-3 и т. д. Возрастающий или убывающий порядок определяется в соответствии с правилами сравнения операндов (пп. 6.3.1.1.1 и 6.3.1.1.2 настоящей части). И мена-да иных перечисляются в порядке уменьшения значимости.
Если формат 2 используется в статье описания записи и соответствующее описание файла или описание сортируемого- сливаемого файла содержит вариант VARYING (ПЕРЕМЕННОЕ ЧИСЛО) во фразе RECORD (В ЗАПИСИ), то запись имеет переменную длину. Если вариант DEPENDING ON (В ЗАВИСИМОСТИ ОТ) во фразе RECORD (В ЗАПИСИ) не указан, то значение данного, определяемого именем-данного-1 во фразе OCCURS (ПОВТОРЯЕТСЯ), должно быть установлено на число записываемых повторений до выполнения любого из операторов RELEASE (ПЕРЕДАТЬ), REWRITE (ОБНОВИТЬ) или WRITE (ПИСАТЬ).
Побачили розбіжність з офіційним текстом?