Формат блока REPORТ. (Генерация отчетов).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) } в процентах от среднее общего кол-ва строк
|