(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Business View: Некоторые примеры применения формул

Наталья Пригодина

Темой данного примера послужила часто встречающаяся задача - подсчет итогов по группам. Но не обычных итогов, для которых было бы достаточно "Итогового поля" или "Поля Промежуточного результата", а итогов, которые вычисляются на уровне группы, но не имеют смысла на уровне строки. Например, процент отгруженных заявок за месяц или доля трудоустроенных сотрудников от общего числа обратившихся. Источником данных будет Business View TEST, которое мы построили в предыдущей статье (приведем здесь только основные скриншоты). А считать мы будем процент завершенных событий по группе "Тип события", предполагая, что аналитика такого рода поможет нам выявить события, на которые необходимо обратить внимание управляющему персоналу.

Рисунок 1. Соединение данных

Рисунок 2. Основание данных

Теперь добавим отличия от предыдущего примера. Каждое событие в нашей базе теперь получит признак - "Завершено / Не завершено". Добавим в таблицу Action поле IsClosed (bit), которое, конечно же, может принимать значения True или False. Таблица примет такой вид.

Таблица Action. Таблица фактов (событий), произошедших за определенное время

DateAction

Дата события

TypeActionId

Идентификатор типа события

EmployeeId

Идентификатор сотрудника

Description

Некое описание

IsClosed

Завершено ли событие (Да/Нет)

Итак, нам необходимо сгруппировать события по "Типам Событий", выяснив процент завершенных. Также необходимо подсчитать процент завершенных событий по всему отчету. Особенностью таких расчетов является невозможность использования стандартных "Итоговых полей" со стандартными функциями агрегации.

Добавим в наш источник данных новое поле. И формулу "Закрыто", которая возвращает 1, если в поле IsClosed стоит True и 0, если поле False.

Рисунок 3. Основание данных.

Включаем новую формулу в бизнес-элемент.

Рисунок 4. Бизнес-элемент.

И, наконец, включаем бизнес-элемент "Действия по сотрудникам и типам событий" в Business View.

Рисунок 5. Бизнес-вью.

Создадим отчет, воспользуемся стандартными способами и объектами Crystal Reports.

Источник данных:

Рисунок 6. Источник данных.

Расположим поля, установим группировку.

Рисунок 7. Отчет с установленной группировкой.

Подводим итоги. Обратите внимание, что на Рисунке 9 в вычисляемом итоге стоит "Сумма", а не "Количество" - так как это поле - формула, возвращающая 1 или 0.

Рисунок 8. Итог. Количество событий.

Рисунок 9. Итог. Количество завершенных событий.

Рисунок 10. Полученные итоги.

В случае отсутствия событий определенного типа у определенных сотрудников в строке не выводится 0, а просто пустое место. В зависимости от задачи можно заменить  поля "Событие" и "Завершено да/нет" на формулу, возвращающую значение или 0 в случае отсутствия такого события. В нашем случае это неважно: пустая строка, наоборот, подчеркивает отсутствие таких сочетаний.

Далее необходимо вывести поле, вычисляющее процент завершенных событий. Для этого мы воспользуемся формулой:

Рисунок 11. Расчет процента завершенных событий по группе Тип События.

Используя эту формулу, получаем:

Рисунок 12. Разместили формулу.

Для того чтобы рассчитывать такие проценты, в каждой группе будут необходимы такие формулы. Это вполне работоспособный (хоть и трудоемкий) вариант решения "задачи процентов". В общем итоге так же будет необходима своя формула, подсчитывающая аналогичный итог. Как пример - добавим внутреннюю группировку по сотруднику и подведем итог.

Рисунок 13. Формула во второй группе.

Опять формула! Повторю, для каждой группы необходимы будут расчеты, относящиеся только к этой группе и никакой другой. Несмотря на то, что они рассчитывают "одно и то же" - процент завершенных событий, они разные, и сами результаты между собой не соотносятся, нельзя вычислить их среднее, сумму и использовать прочие агрегирующие функции. А если таких значений не одно, как у нас в примере, количество событий? Допустим, их несколько - например, количество событий по признаку 1, по признаку 2 и так далее. И все они должны располагаться столбиками. Данный пример может иллюстрировать как базу данных, где эти значения действительно лежат в своих столбцах, так и форму отчета, которая утверждена каким-либо документом, и мы вынуждены выводить наши значения столбцами. В этом случае процент "Завершенных" (они могут быть и "начатыми", и "конфликтными", и еще многовариантно какими) должен будет рассчитываться по каждому столбцу, и количество формул возрастает во много раз.

Разумеется, мы предложили "чисто отчетное" решение данной проблемы, вполне возможно, что эта задача может быть переложена, например, на БД, но это уже совсем другой подход, который мы здесь не рассматриваем.

Строим BusinessView. Часть 1

Строим BusinessView. Часть 2



 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 18.07.2011 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
SAP CRYSTAL Server 2013 WIN INTL 5 CAL License
SAP® Crystal Reports 2016 WIN INTL NUL
SAP CRYSTAL Reports 2013 WIN INTL NUL
SAP Crystal Server 2011 WIN INTL 5 CAL License
SAP® Crystal Presentation Design 2016 WIN INTL NUL
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
CASE-технологии
СУБД Oracle "с нуля"
Новые материалы
Adobe Photoshop: алхимия дизайна
3D и виртуальная реальность. Все о Macromedia Flash MX.
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100