WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Советы » Формат блока REPORТ. (Генерация отчетов)

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


Дата публикации: 16-10-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) } в процентах от среднее общего кол-ва строк
Журнал о бизнесе
Домен продается

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Октябрь 2018 (14)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта



Случайная цитата

Bill Bryson:

"Для меня долгое время было загадкой, как что-то очень дорогое и технологичное может быть столь бесполезным. И вскоре я осознал, что компьютер — это глупая машина, обладающая способностями выполнять невероятно умные вещи, тогда как программисты — это умные люди, у которых талант делать невероятные глупости. Короче, они нашли друг друга."

Опрос

Какими социальными сетями Вы пользуетесь?

Vkontakte.ru
Одноклассники
Мой Мир - mail.ru
Google Plus
Facebook
ЖЖ
Другие
Не пользуюсь