====== Создание показателей на основе формулы ====== ===== Зачем нужен показатель-формула ===== Показатели-формулы позволяют посчитать значения из других типов показателей. \\ Например, можно рассчитать: * процент освоения бюджета, * показатели освоенного объема, * среднюю стоимость работ на единицу площади объекта * или премиальную составляющую заработной платы сотрудника. Перед созданием показателей на основе формул необходимо, чтобы в кубе уже был хотя бы один [[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, вне зависимости от количества возможных коэффициентов (читай -- вариантов, способов расчёта).