Группировка и сортировка данных отчета

 
  Группировка и сортировка данных отчета - student2.ru

Для группировки и сортировки используется команда Layout/Sorting and Grouping (рисунок 4.4.1).

Рисунок 4.4.1. Окно сортировки и группировки

Рассмотрим основные элементы этого окна.

Dataset Columns – список имен полей набора данных для выбора.

Sort/Group On – список имен полей сортировки и группировки.

Add/Remove – включение/удаление поля сортировки и группиров­ки.

Group and Sort – поле сортировки и группировки (сортировка по полям группировки производится автоматически).

Sort Only – поле только для сортировки.

Ascending/Descending – сортировка по возрастанию/убыванию значений.

Case Sensitive – учет регистра текстовых данных при сортировке.

Sort/Group on Calculated Value – кнопка установки вычисляемых полей сор­­ти­ровки и группировки. Созданная формула автоматически добав­ляет­ся в список Sort/Group On.

Изменение файла данных отчета

Созданный файл данных отчета типа LWR можно изменить коман­дой Options/Current Dataset (рисунок 4.5.1).

В верхнем поле показывается исходный файл данных, а в нижнем – файл, который сохраняется вместе с отчетом. Обычно в этих полях указы­ва­ется один и тот же файл. Если необходимо использовать другой файл данных, то его имя нужно указать в верхнем поле. Этот файл должен иметь те же колонки, что и старый. Для постоянного изменения файла нужно его имя указать в нижнем поле и нажать кнопку Link. Этот файл будет связан с текущим шаблоном отчета (LWR). Если не указать путь (нажата кнопка No Path), то шаблон отчета не привязывается к конкретной папке и ищется сначала в папке по умолчанию (Datasets), затем – с Группировка и сортировка данных отчета - student2.ru
файлом шаблона отчета и, наконец, – в текущей папке.

Рисунок 4.5.1. Окно изменения файла данных отчета

Изменение свойств отчета

 
  Группировка и сортировка данных отчета - student2.ru

Свойства отчета выводятся командами Options/Current Layout и Options/Preferences (рисунок 4.6.1).

Рисунок 4.6.1. Окно свойств отчета

Рассмотрим основные опции форматирования.

Datetime, Date, Time, Number, Money – форматирование по умолчанию полей: даты и времени, даты, времени, чисел и стоимостных значений соответственно.

Number Format – форматы числовых полей.

Show Text Borders – текстовые поля отчета заключаются в рамки.

Add Names to New Data Fields – поле размещается на форме с допол­ни­тель­­ным текстовым полем – именем размещаемого поля.

Fit All Columns on One Page – колонки отчета сжимаются так, чтобы они не выходили за ширину страницы отчета.

Snap Objects To Gride – связать поля с координатной сеткой.

Show Gride – вывести координатную сетку.

Enable Case Sensitive Sort Options – учет регистра при сортировках.

Top, Bottom, Right, Left, Inches/Centimeters – местоположение и размер поля отчета в дюймах/сантиметрах соответственно.

Leading zero on days and month – выводить ведущие, не значащие нули в номерах дней и месяцев.

Формирование формул

 
  Группировка и сортировка данных отчета - student2.ru

Любое поле можно преобразовать в формулу кнопкой Formula Editor из окна свойств поля (рисунок 4.7.1).

Рисунок 4.7.1. Окно редактора формул

Для внесения в текст формулы колонки, функции или оперетора нужно дважды щелкнуть по соответствующей строке списка.

Имена колонок могут состоять только из латинских букв, цифр и не должны на­чинаться с цифры. В противном случае имена колонок заклю­чаются в фигурные скобки.

Допускаются операторы: сложения (+), вычитания (-), умножения (*), деления (/), сцепления строк (&), сравнения (<=, <, =, >=, >), логические операторы (is, in, or, not, is null, is not null).

Строковые константы заключаются в кавычки.

Типы данных: Number, Text, Date, Time, Datetime. Для преобразо­ва­ния типов используются соответствующие функции.

Функции

Агрегативные функции позволяют производить вычисления контекст­но по груп­пе строк секции отчета, в которой они находятся (Sum, Avg, Min, Max, Count), или независимо от этой секции (GroupSum, GroupAvg, GroupMin, GroupMax, GroupCount, ReportSum, ReportAvg, ReportMin, ReportMax, ReportCount).

Список функций

Abs(number) – абсолютное значение аргумента.

Age(date) – полное число лет от даты аргумента до текущего дня.

Avg(number) – среднее значение аргумента по строкам (контекстно).

Cos(number) – косинус аргумента.

Count() – количество строк (контекстно).

Date(), DateTime()–текущая дата, текущая дата и время.

DayOfMonth(date), DayOfYear(date)–день месяца, года аргумента.

DayOfWeek(date)– день недели даты аргумента (вос­кресенье – 1).

DayBetween(datel, date2)– число дней между двумя датами аргументов.

GroupMax/Group­Min/GroupSum/GroupAvg(num­ber) – максимальное/мини­маль­­­ное/сумма/среднее значение аргумента по группе.

GroupCount(number)– количество строк в группе.

Hour(time)– часы (0-23) даты аргумента.

If <условие> Then valuel [Else value2]– если условие истинно, то вы­пол­ня­ется выражение Value1, иначе – выражение Value2.

InitCap(text)– текст аргумента, все символы которого в нижнем регистре, за исключением первых символов слов, например InitCap(«aRRoW name») возвращает «Arrow Name».

Lcase(text) – текст аргумента, все символы которого в нижнем регистре.

Left(text, number)– первые символы слева от текста первого аргумента. Количество символов указывается во втором аргументе.

LTrim(text)–текстаргумента без символов пробела слева.

MakeDate(MM, DD, YY)– дата, сгенерированная по трем числам (например, функция MakeDate(l,2,1999) возвращает значение «2 января 1999 г.»).

MakeTime(HH,MI,SS) – время, сгенерированное по трем числам – часы, минуты, секунды.

MakeMoney(number)– тип money, конвертированный из аргумента number.

Max/Min(number)– максимальное/минимальное значение аргумента по стро­кам (контекстно).

Mid(text, numberl, number2) – подстрока первого аргумента, начиная с пози­ции numberl и включая number2 символов.

Minite(time) – количество минут времени аргумента (0–59).

Mod(numberl, number2) – остаток от деления первого аргумента на второй.

Month(date) – порядковый номер месяца даты аргумента (1–12).

PageNum(),RecNumQ – номер страницы, строки отчета.

Quarter(date)– квартал даты аргумента (1–4).

Replace(mainText, oldText, newText) – замена символов в строке mainText – старого фраг­мента oldText на новый newText.

ReportAvg(number) – среднее значение аргумента по отчету.

ReportCount(number) – количество строк в отчете.

ReportCumAvg(number) – среднее значение аргумента, вычисляемое контек­стно. Если ReportCumAvg расположена в секции Detail, то функция будет возвращать среднее значение аргумента всех вышестоящих строк отчета.

ReportCumMax/ReportCumMin (number) – максимальное/минимальное значе­ние аргумента, вычисляемое контекстно, аналогично ReportCumAvg.

ReportCumSum(number)– сумма аргумента, вычисляемая контекстно.

ReportMax(number) – максимальное значение аргумента по отчету.

ReportMin(number)– минимальное значение аргумента по отчету.

ReportSum(number)–сумма аргумента по отчету.

Right(mainText, number)– первые символы справа от текста первого аргумента. Количество символов указывается во втором аргументе.

Round(numberToRound, precisionNumber)– округленное значение первого аргумента. Во втором аргументе указывается точность округления (напри­мер, Round(12345,500) возвращает 12500).

RTrim(text)– текст аргумента без символов пробела справа.

Second(time) – количество секунд времени аргумента (0–59).

Sign(number) – 1, если аргумент положительный; 0, если равен ну­лю и –1, если аргумент отрицательный.

Sin(number)–синус аргумента.

Sum(number)–сумма значений аргумента по строкам (контекстно).

Tan(number)–тангенс аргумента.

Time()– текущее время.

ToDate(text, format)–дата, конвертированная из текстовой строки. Вто­рой аргумент указывает формат даты.

ToNumber(text)– число, конвертированное из текстовой строки.

ToText(date, format)– текст, конвертированный из даты. Второй аргумент указывает формат даты.

Trim(text)– текст аргумента без «лишних» символов пробела. Удаляются про­белы перед строкой и после строки аргумента; если пробелов подряд более двух, то остав­ляют только один.

Trunc(number, precision) – округленный первый аргумент с отбрасывани­ем остатка; во втором аргументе указывается точность округления.

Ucase(text) – текст аргумента, все символы которого в верхнем регистре.

Week(date) – порядковый номер недели (в году) даты аргумента (1–54).

Year(date) – год даты аргумента.

YearsBetween(datel, date2) – количество лет между датами первого и второго аргументов.

Пример формирования отчета

 
  Группировка и сортировка данных отчета - student2.ru

Сформируем стандартный отчет по потреблению электроэнергии и воды при производстве изделий (рисунок 4.8.1).

Рисунок 4.8.1. Окно просмотра готового отчета

Введем новые свойства пользователя (п. 2.3.2): «Потребление во­ды (т)» и «Потребление электроэнергии (кВт·ч)» категории «Пот­реб­ле­ние ма­териальных ресурсов» и сфор­мируем их значения (рисунок 4.8.2) типа Real Number с тремя знаками после запятой для диаграмм нижнего уровня.

 
  Группировка и сортировка данных отчета - student2.ru

Выполним команду Tools/Reports/Diagram Object Report и произ­ве­дем настройку опций этого окна (рисунок 4.8.2).

Рисунок 4.8.2. Окно настройки отчета

Нажмем кнопку UDP Filter, выберем категорию свойств «Пот­реб­ле­ние материальных ресурсов» для просмотра отчета.

Нажмем кнопку Preveiw для просмотра отчета (рисунок 4.8.3).

Наши рекомендации