Опубликован: 17.08.2006 | Уровень: для всех | Доступ: платный
Лекция 10:

Отчеты

< Лекция 9 || Лекция 10: 12345 || Лекция 11 >

Поля отчета

Поле отчета - это пространство указанной ширины, расположенное в определенном месте отчета, куда помещаются данные в нужном представлении. (Например, конкретное поле в отчете может быть описано таким образом - "в начале первой строки заголовка каждой страницы должна выводиться текущая дата в следующем виде: день (две цифры с ведущим нулем), месяц (две цифры с ведущим нулем) и год (четыре цифры с ведущим нулем), разделенные точками".) Поля отчета в описании формата представлены в виде так называемых поледержателей (fieldholders). Поледержатель (или переменная поля) представляет из себя шаблон, описывающий тип поля, его ширину в символах, выравнивание значения внутри поля и другие преобразования, которые нужно выполнить над данными при размещении их в этом поле во время формирования отчета. Поледержатель начинается с символа начала шаблона (@ или ^), за которым следуют символы описания шаблона. Число символов в шаблоне, включая символ начала шаблона, определяет ширину помещаемых в отчет данных. Несколько примеров поледержателей с пояснениями приведены в таблице 10.1:

Таблица 10.1. Примеры описания полей в формате отчета
Поледержатель Описания формата и преобразований
@<<<<<<<<<<< Вывести текстовое значение в поле шириной в 12 символов. Выровнять его по левому краю, дополнив при необходимости пробелами справа до ширины поля. Слишком длинное значение усечь до ширины поля
@<<<<<<<<... Аналогично предыдущему примеру, но с выведением в конце поля многоточия, если значение усечено
@#####.### Вывести числовое значение в поле шириной в 9 символов, отведя 5 цифр под целую и 3 цифры - под дробную часть числа. Выровнять его по правому краю и дополнить при необходимости целую часть числа пробелами слева до ширины поля и округлить дробную часть до 3 знаков. При попытке вывести число, целая часть которого не умещается в ширину поля, заполнить поле символом '#' как признак
@0###.### Так же, как в предыдущем примере, но с дополнением целой части значения ведущими нулями до ширины поля

Полный список символов, применяемых для описания полей и форматов, приводится в таблице 10.2.

Таблица 10.2. Символы, применяемые при описании полей и форматов
Символ Описание Примеры использования
@ начало обычного поля @ @<< @||| @>> @##
^ начало специального поля ^ ^<< ^||| ^>> ^##
< текстовое поле с выравниванием значения влево и добавлением пробелов справа @<<<<< ^<<<
| текстовое поле с центрированием значения и добавлением пробелов с обеих сторон @||||| ^|||
> текстовое поле с выравниванием значения вправо и добавлением пробелов слева @>>>>> ^>>>
# числовое поле с выравниванием значения вправо с добавлением пробелов слева @#### ^###
0 (вместо первого #) числовое поле с выравниванием значения вправо и добавлением нулей слева @0### ^0##
. десятичная точка в числовом поле @.### @0##.##
... закончить текстовое поле многоточием, чтобы показать усечение значения @<<<<<...
@* поле переменной ширины со значением, состоящим из нескольких строк @*
^* поле переменной ширины для следующих строк многострочного значения ^*
~ подавление вывода строки с пустыми значениями полей ^* ~
~~ повторять строку, пока все значения полей не станут пустыми ~~ ^*
{} группировка списка значений, который располагается на нескольких строках аргументов {$one, $two, $three }
# (первым символом в строке) строка комментария в описании формата (не может располагаться между строкой шаблонов и строкой аргументов) # это комментарий
. (единственным символом на отдельной строке) конец формата format REPORT = описание формата .

То, как применяются поледержатели при описании формата, можно увидеть из следующего примера:

format STDOUT =
Учетная карточка пользователя N @0###
$number
---------------------------------------------------------
Фамилия  @<<<<<<<<<<<<<<     | Login   @<<<<<<<
         $last_name,                   $login
Имя      @<<<<<<<<<<<        | Группа  @<<<<<<<<<<<<<<<<<
              $first_name,                  $group
Отчество @<<<<<<<<<<<<<<<<<< |
         $middle_name
E-mail   @<<<<<<<<<<<<<<<<<< | Телефон @>>>>>>>>>
         $email,                       $phone
Ограничение дискового пространства @####.## Мегабайт
$quota
---------------------------------------------------------
Дата регистрации @# @<<<<<<<<< @### года
                {$day, 
                    $month_name,$year}
.

Из примера понятно, что формат отчета записывается в виде, максимально похожем на представление страницы отчета на экране или на бумаге. Каждому полю в строке шаблонов должно соответствовать скалярное значение в строке аргументов. Имена переменных в строке аргументов для наглядности часто располагаются под соответствующими поледержателями в предыдущей строке шаблонов, хотя это совсем не обязательно. Список переменных может находиться на нескольких строках аргументов (как это сделано в описании последней строки формата); в этом случае он должен заключаться в фигурные скобки. Имейте в виду, что скалярные переменные и массивы в строке аргументов разворачиваются в единый список скаляров, из которого по порядку берутся значения для заполнения полей.

< Лекция 9 || Лекция 10: 12345 || Лекция 11 >
Сергей Крупко
Сергей Крупко

Добрый день.

Я сейчас прохожу курс  повышения квалификации  - "Профессиональное веб-программирование". Мне нужно получить диплом по этому курсу. Я так полагаю нужно его оплатить чтобы получить диплом о повышении квалификации. Как мне оплатить этот курс?

 

Галина Башкирова
Галина Башкирова

Здравствуйте, недавно закончила курс по проф веб программиованию, мне прислали методические указания с примерами тем, однако темы там для специальности 

Системный администратор информационно-коммуникационных» систем.
Мне нужно самой найти тему? или делать по высланным темам

 

Зарина Каримова
Зарина Каримова
Казахстан, Алматы, Гимназия им. Ахмета Байтурсынова №139, 2008
Akiyev Begench
Akiyev Begench
Беларусь, Полоцк, полоцкий государственный университет