====== Создание показателей на основе формулы ======
===== Зачем нужен показатель-формула =====
Показатели-формулы позволяют посчитать значения из других типов показателей. \\
Например, можно рассчитать:
* процент освоения бюджета,
* показатели освоенного объема,
* среднюю стоимость работ на единицу площади объекта
* или премиальную составляющую заработной платы сотрудника.
Перед созданием показателей на основе формул необходимо, чтобы в кубе уже был хотя бы один [[product/olap/request|показатель на основании запросов]], иначе переменных для выполнения расчетов в показателе-формуле попросту не будет.
===== Как создать показатель-формулу =====
- Зайдите в шаблон OLAP-куба (предварительно [[product/olap/template|его нужно создать]] и [[product/olap/new_metering|добавить измерение]], а также добавить хотя бы один [[product/olap/request|показатель-измерение]]).
- В портлете "Показатели" -> ''Создать''. \\ {{ :product:olap:olap_request_formula_1.png?nolink |}} \\ **Рисунок 1** -- Страница шаблона OLAP-куба
- Введите название показателя.
- В поле ''Тип показателя'' выберите ''Формула''.
- В портлете «Формула» (Рисунок 2), в выпадающем меню, выберите один из существующих показателей редактируемой сводки.
- Нажмите кнопку ''Добавить'' для добавления новой строки формулы.
- В выпадающем меню выберите арифметическую или логическую операцию.
- Нажмите кнопку ''Добавить'' для добавления новой строки формулы.
- Выберите следующий показатель / константу / операцию и т.д. \\ {{ :product:olap:olap_request_formula_2.png?nolink |}} \\ **Рисунок 2** -- Страница создания показателя на основе формулы
- Сохраните показатель.
Результатом логической формулы является число «0» – если условие не выполняется, число «1» – если условие выполняется.
Показатели-формулы, основанные на логических выражениях, можно использовать в других показателях-формулах, либо показателях-индикаторах.
==== Значения элементов ====
|<40% 35% 65%>|
|<название показателя 1, 2...n>|Сколько уже создано показателей в этом OLAP-кубе, столько их будет в этом перечне|
|OR|логическое ИЛИ (как минимум одно из двух условий должно выполняться)|
|AND|логическое И (все заданные условия должны выполняться)|
|!=|не равно|
|>=|больше или равно|
|%%<=%%|меньше или равно|
|>|больше|
|<|меньше|
|=|равно|
|)|скобки для изоляции и приоретизации части вычисления|
|(|:::|
|%%^%%|возведение в степень|
|/|деление|
|*|умножение|
|-|вычитание|
|+|сложение|
|Константа|можно внести число-константу, которая будет участвовать в вычислении|
|Проверка на NULL|проверить, есть ли в поле какое-то значение или там пусто|
===== Свойства и доп.опции =====
==== Проверка, заполнено ли значение в другом показателе====
При задании формулы можно проверить, заполнено ли значение в другом показателе.
В портлете "Формула" при составлении формулы выберите в выпадающем списке «Проверка на NULL» -- и рядом показатель, который нужно проверить.
Результат формулы -- логический.
* Если значение проверяемого поля пустое, то результат формулы будет равен 1.
* Если значение проверяемого поля не пустое, то результат формулы будет равен 0.
==== Агрегация ====
{{page>product/olap/indicator_options#для_показателя_формулы&nofooter&noheader}}
==== Скрытый ====
{{page>product/olap/indicator_options#скрытый&nofooter&noheader}}
===== Кейс =====
**Условия:** на разных этапах проекта (читай -- на разных этапах [[product:requisites:requisite-prosess|реквизита-процесса]]) расчёт услуги по договору должен рассчитываться исходя из разных ставок.
**Принцип решения:** (X1*Y)*C1+(X2*Y)*C2+...+(Xn*Y)*Cn, где:
* X1, X2...Xn -- значения из справочников 1, 2...n соответственно.
* Y -- объём работы (количество деталей, число часов и т.п.), который соотносится со ставкой в справочнике.
* C1, C2...Cn -- бинарный коэффициент, результат проверки фазы. Требования к коэффициенту:
* Может быть только 0 или 1.
* Только один из коэффициентов в выражении может быть равен 1, вне зависимости от количества возможных коэффициентов (читай -- вариантов, способов расчёта).