Формат блока REPORТ. (Генерация отчетов)

Архив WebclubТехнологии2010

Публикация прежнего Webclub · 2010 год. Примеры и сведения сохранены в историческом контексте.

 

REPORT report-name (argument-list)
DEFINE variable-list { type | LIKE table-column |

   RECORD  { LIKE table.* | variable-list  type [,...]

                            END RECORD } }[,...]
[OUTPUT                       по умолчанию:
  [REPORT TO { "filename | PIPE "program" | PRINTER }    ]

                                 SCREEN

  [ LEFT   MARGIN integer ]         5

  [ RIGHT  MARGIN integer ]        132

  [ TOP    MARGIN integer ]         3

  [ BOTTOM MARGIN integer ]         3

  [ PAGE  LENGTH  integer ]         66

]
[ORDER [EXTERNAL] BY  sort-list ]     подсписок  переменных,

                                      входящих в аргументы
FORMAT EVERY ROW   простейший оператор формата.

           В этом случае нельзя использовать контрольные блоки.

     либо
FORMAT  включает несколько контрольных блоков, которые содержат

   обычные операторы 4GL и операторы применимые только в REPORТ
  ON EVERY ROW                  выводит строку

        statement

          . . .

  FIRST PAGE HEADER        выводит заголовок первой страницы

        statement

          . . .

  ON LAST ROW             окончание REPORT (подведение итогов)

        statement

          . . .

  PAGE HEADER                 заголовок каждой страницы

        statement

          . . .

  PAGE TRAILER                 в конце каждой страницы

        statement

          . . .

  BEFORE GROUP OF variable      в начале группы строк

        statement

          . . .

   . . .

  AFTER GROUP OF  variable       в конце группы строк

        statement

          . . .

   . . .

END REPORT

­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

в контрольных блоках кроме обычных операторов 4GL используются:
NEED num-expr LINES     если на странице  осталось  менее  

                        expr строк, то начать с новой страницы.

PAUSE ["Сообщение"]     вывести  Сообщение на экран 

                        и ждать нажатия CR

PRINT FILE "filename"   вывести на печать содержимое файла
SKIP { integer LINE | TO TOP OF PAGE }
PRINT   список выражений [;]

       вывести на печать [не переводя строку]

В REPORT можно использовать следующие функции:

num-expr SPACES вставить пробелы char-exp WORDWRAP [RIGHT MARGIN integer] вывести длинную строку LINENO номер строки на странице PAGENO номер печатаемой страницы

Агрегатные функции:

[GROUP] functioп [WHERE условие] [для группы строк] применить функцию [только для строк, удовлетворяющих условию] где functioп может быть: { COUNT(*) | PERCENT(*) | { SUM | MAX | MIN | AVG }(expr) } в процентах от среднее общего кол-ва строк

Ещё из архива

Архив клуба
веб-разработчиков

HTML, CSS, программирование и история интернета. Публикации прежнего Webclub по своим адресам.

Открыть архив
Сайт на ноутбуке и телефоне