1. если соответствующее данное числовое, размер и положение десятичной точки счетчика суммы такие же как и этого данного;

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

  3. если соответствующее данное буквенно-цифровое или бук­венно-цифровое редактируемое, размер счетчика суммы равняется размеру этого данного за исключением литер редактирования, или 18 литерам (меньшему из них), и счетчик суммы является целым.

  1. Во время выполнения СУГО прибавляет к счетчику суммы значение каждого данного, па которое ссылается идентификатор-1. Это сложение согласуется с правилами для арифметических опера­торов (ем. ч. 6, пи. 6.4.4, 6.4.5).

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

  3. Если статья описания элементарного печатаемого данного отчета содержит фразу SUM (СУММА), счетчик суммы служит в качестве данпого-псгочпика. СУГО помещает данное, содержаще­еся в счетчике суммы, в печатаемое данное для представления сог­ласно правилам оператора MOVE (ПОМЕСТИТЬ).

  4. Если имя-даппого появляется как субъект статьи описания элементарного данного отчета, содержащей фразу SUM (СУМ­МА), имя-да иного является именем счетчика суммы, имя-даппого не является именем печатаемого данного, которое также может определяться этой статно'':.

  5. Значения счетчиков сумм допустимо изменять с помощью операторов раздела процедур.

  6. Суммирование в счетчиках сумм значений данных, пред­ставленных идентификаторами, осуществляется системой управле­ния генератором отчетов во время выполнения операторов GENE­RATE (ГЕНЕРИРОВАТЬ) к TERMINATE (ЗАКОНЧИТЬ). Име­ются три категории увеличения счетчика суммы, называемые по­дытоживанием, концовочпым суммированием и нарастающим ито­гом. Подытоживание исполняется только во время выполнения опе­раторов GENERATE (ГЕНЕРИРОВАТЬ) и после обработки лю­бого прерывания управления, но до обработки группы отчета типа фрагмент (см. п. 4.3 настоящей части). Концовочпое суммирование и нарастающий итог исполняются во время обработки групп отче­та типа управляемая концовка (п. 3.20 настоящей части).

  7. Вариант UPON (ДЛЯ) обеспечивает возможность выпол­нять выборочное подытоживание только для тех групп отчета типа фрагмент, па которые ссылаются в этом варианте.

  8. Момент времени в который СУГО прибавляет каждое сла­гаемое к счетчику суммы, зависит от характеристик слагаемого:

  1. если слагаемое является счетчиком суммы, определенным в той же группе отчета типа управляемая концовка, то накопление этого слагаемого в счетчике суммы определяется как концовочпое суммирование.

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

Концовочпое суммирование выполняется соответственно после- последовательности, в которой определены счетчики сумм в груп­пе отчета управляемая концовка. Это значит, что завершается все концовочпое суммирование в первом счетчике суммы, определен­ном в группе отчета управляемая концовка, а затем завершается все концовочпое суммирование во втором счетчике суммы, опреде­ленном в группе отчета типа управляемая концовка. Эта процеду­ра повторяется пока не завершаются все операции копцовочного суммирования.

Если одно из слагаемых является счетчиком суммы, определен­ным статьей описания данного, содержащей фразу SUM (СУМ­МА), во время суммирования используется начальное значение этого счетчика;

  1. если слагаемое является счетчиком суммы, определенным в группе отчета типа управляемая концовка с более низким уровнем в иерархии управления, накопление этого слагаемого в счетчике суммы определяется как нарастающее суммирование. Счетчик сум­мы в группе отчета типа управляемая концовка па более низком уровне иерархии управления наращивается, когда имеют место прерывание управления и обработка группы отчета типа управ­ляемая концовка для этого уровня в иерархии управления;

  2. если слагаемое не является счетчиком суммы, накопление в счетчике суммы такого рода слагаемого определяется как подыто­живание. Если фраза SUM (СУММА) содержит вариант UPON (ДЛЯ) слагаемые накапливаются при выполнении оператора GENERATE (ГЕНЕРИРОВАТЬ) для указанных групп отчета ти­па фрагмент. Если фраза SUM (СУММА) указана без варианта UPON (ДЛЯ), слагаемые, не являющиеся счетчиками сумм, на­капливаются при выполнении любого оператора GENERATE имя- данного (ГЕНЕРИРОВАТЬ пмя-данного) для отчета, в описании которого указана фраза SUM (СУММА).

  1. Если два или более идентификаторов ссылаются на одно и то же слагаемое, это слагаемое прибавляется к счетчику суммы столько раз, сколько раз па пего имеется ссылка во фразе SUM (СУММА). Допустимо в варианте UPON (ДЛЯ) указывать два или больше имен-дапных, ссылающихся па одну и ту же группу типа фрагмент. Если для такой группы типа фрагмент зада!! опе­ратор GENERATE имя-данпого (ГЕНЕРИРОВАТЬ имя-даппого), суммирование выполняется повторно столько раз, сколько раз это имя-данпого появляется в варианте UPON (ДЛЯ).

  2. Подытоживание при выполнении оператора GENERATE имя-отчета (ГЕНЕРИРОВАТЬ пмя-огчета) описано ниже (п. 4.3 настоящей части).

  3. При отсутствии явного варианта RESET (СБРОСИТЬ) СУГО устаиав.тнваег счетчик суммы в пуль во время обработки группы отчета типа управляемая концовка, в которой определяет­ся счетчик суммы. Если указан явный вариант RESET (СБРО­СИТЬ), СУГО устанавливает счетчик суммы в пуль во время об­работки соответствующего уровня управляющей иерархии (п. 3.20 настоящей часи і.

Счетчики сумм первоначально устанавливаются СУГО в нуль во время выполнения оператора INITIATE (НАЧАТЬ) для отче­та, в котором они определены.

  1. Фраза ТУРЕ (ТИП)

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

Фраза TYPE (ТИП) определяет, к какому типу принадлежит группа отчета, описание которой содержит эту фразу, и указывает время, в которое группа отчета должна обрабатываться СУГО.

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

/ REPORT HEADING

(rh

I PAGE HEADING )

I PH I

/CONTROL HEADING 1 ( имя-данного-1 |
j CH FINAL (

/

TYPE IS

DETAIL 1

j DE J

/ CONTROL FOOTING | [ имя-данного-2 |

J CF J j FINAL j /PAGE FOOTING |

I PF I

/ REPORT FOOTING /

I RF J

І ЗАГОЛОВОК ОТЧЕТА I

j ЗО J

/ЗАГОЛОВОК СТРАНИЦЫ ]

і зс і

/ УПРАВЛЯЕМЫЙ ЗАГОЛОВОК]пп/имя-данного-1

І УЗ J—і концу

/ФРАГМЕНТ І

І

ТИП

ФР J

/УПРАВЛЯЕМАЯ КОНЦОВКА /

І УК j

j имя-дашюго-2

—]КОНЦУ

/ КОНЦОВКА СТРАНИЦЫ 1

(кс J

/ КОНЦОВКА ОТЧЕТА )

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

  1. RH (30) является сокращением REPORT HEADING (ЗА­ГОЛОВОК ОТЧЕТА).

РН (ЗС) является сокращением PAGE HEADING (ЗАГОЛО­ВОК СТРАНИЦЫ).

СН (УЗ) является сокращением CONTROL HEADING (УП­РАВЛЯЕМЫЙ ЗАГОЛОВОК).

DE (ФР) является сокращением DETAIL (ФРАГМЕНТ).

СЕ (УК) является сокращением CONTROL FOOTING (УП­РАВЛЯЕМАЯ КОНЦОВКА).

PF (КС) является сокращением PAGE FOOTING (КОНЦОВ­КА СТРАНИЦЫ).

RF (КО) является сокращением REPORT FOOTING (КОН­ЦОВКА ОТЧЕТА).

  1. Каждая из групп отчета, определяемая фразами REPORT HEADING (ЗАГОЛОВОК ОТЧЕТА), PAGE HEADING (ЗАГО­ЛОВОК СТРАНИЦЫ), CONTROL HEADING FINAL (УПРАВЛЯ­ЕМЫЙ ЗАГОЛОВОК ПО КОНЦУ), CONTROL FOOTING FINAL (УПРАВЛЯЕМАЯ КОНЦОВКА ПО КОНЦУ), PAGE FOOTING (КОНЦОВКА СТРАНИЦЫ) и REPORT FOOTING (КОНЦОВКА ОТЧЕТА) может указываться в описании отчета не более одного раза.

  2. Группы отчета тина заголовок страницы и концовка стра­ницы могут быть указаны только тогда, когда в статье описания соответствующего отчета указана Фраза PAGE (РАЗМЕР СТРА­НИЦЫ).

  3. Имя-данного-1, имя-данного-2 и FINAL (ПО КОНЦУ), ес­ли указаны в фразе TYPE (ТИП), должны быть указаны и во фра­зе CONTROL (УПРАВЛЕНИЕ) соответствующей статьи описания отчета. Для каждого из указанных во фразе CONTROL (УПРАВ­ЛЕНИЕ) статьи описания отчета имеп-данпых или FINAL (ПО КОНЦУ) может быть определено ие более одной группы отчета типа управляемый заголовок и не более одной группы типа управ­ляемая концовка. Тем не менее пи группа отчета типа управляемый заголовок, ни группа отчета типа управляемая концовка не явля­ются обязательными для имени-данного или FINAL (ПО КОНЦУ), указанных во фразе CONTROL (УПРАВЛЕНИЕ) статьи описания отчета.

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

  1. групповые данные, содержащие управляющее данное;

  2. данные, подчиненные управляющему данному;

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

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

  2. Описание отчета должно включать по крайней мере одну труппу тела отчета.

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

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

  2. Вариант REPORT HEADING (ЗАГОЛОВОК ОТЧЕТА) указывает группу отчета, порождаемую СУГО только один раз в •отчете как первую группу этого отчета. Группа типа заголовок от­чета порождается в момент выполнения первого по времени опера­тора GENERATE (ГЕНЕРИРОВАТЬ) для этого отчета.

  3. Вариант PAGE HEADING (ЗАГОЛОВОК СТРАНИЦЫ) указывает группу отчета, которая порождается СУГО как первая группа для каждой страницы этого отчета, кроме следующих слу­чаев:

  1. группа отчета типа заголовок страницы не порождается для страницы, которая должна содержать только группу типа заголо­вок отчета или концовка отчета;

  2. группа типа заголовок страницы порождается как вторая группа отчета для страницы, когда ей предшествует группа типа заголовок отчета, которая не представляется на отдельной страни­це (см. п. 3.10 настоящей части).

  1. Вариант CONTROL HEADING (УПРАВЛЯЕМЫЙ ЗАГО­ЛОВОК) указывает группу отчета, которая обрабатывается СУГО в начале управляемой группы и соотнесена управляющему имени- данного или управлению FINAL (ПО КОНЦУ) и порождается в момент выполнения первого по времени оператора GENERATE (ГЕНЕРИРОВАТЬ) для этого отчета. При выполнении любого оператора GENERATE (ГЕНЕРИРОВАТЬ), если СУГО обнару­живает прерывание управления, порождаются группы отчета типа управляемый заголовок, соотнесенные наивысшему обнаруженно­му уровню прерывания управления и более низким уровням.

  2. Вариант DETAIL (ФРАГМЕНТ) указывает группу отчета, порождаемую СУГО при выполнении соответствующего оператора GENERATE (ГЕНЕРИРОВАТЬ).

  3. Вариант CONTROL FOOTING (УПРАВЛЯЕМАЯ КОН­ЦОВКА) указывает группу отчета, порождаемую СУГО в конце управляемой группы для соответствующего управляющего имени» данного.

В случае управленій] FINAL (ПО КОНЦУ) группа типа управ­ляемая концовка порождается только один раз в отчете как по­следняя группа тела этого отчета. При выполнении любого опера­тора GENERATE (ГЕНЕРИРОВАТЬ), если СУГО обнаруживает прерывание управления, порождается группа отчета типа управ­ляемая концовка, соотнесенная наивысшему уровню прерывания управления и более низким уровням. Если для некоторого отчета- был выполнен хотя бы одии’оисратор GENERATE (ГЕНЕРИРО­ВАТЬ), то при выполнении оператора TERMINATE (ЗАКОН­ЧИТЬ) порождаются все группы типа управляемая концовка для этого отчета (см. п. 4.7 настоящей части).

  1. Вариант PAGE FOOTING (КОНЦОВКА СТРАНИЦЫ) указывает группу отчета, которая порождается СУГО как послед­няя группа отчета на каждой странице за исключением следующих случаев:

  1. группа отчета типа концовка страницы не порождается для страницы, которая должна содержать только группу типа заголо­вок отчета или только группу типа концовка отчета;

  2. группа типа концовка страницы порождается как предпос­ледняя группа отчета на странице, если за ней следует группа типа- концовка отчета, не представляемая на отдельной странице (см. п. 3.10 настоящей части).

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

  2. При порождении групп отчета типа .заголовок отчета, за­головок страницы, управляемый заголовок, концовка страницы или концовка отчета СУГО выполняет последовательность действий, описанных ниже:

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

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

  3. если оператор SUPPRESS (ПОДАВИТЬ) не был выполнен и группа отчета печатаемая, СУГО формирует печатаемые строки? и представляет группу отчета соответственно правилам представ­ления для группы отчета этого типа (см. и. 3.10 настоящей части).

  1. Ниже приводится последовательность действий, выпол­няемых СУГО при порождении группы типа управляемая кон­цовка.