Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
product:olap:formula [12.04.2019 13:48] – создано maynproduct:olap:formula [16.08.2019 08:34] (текущий) – [Как создать показатель-формулу] mayn
Строка 1: Строка 1:
 ====== Создание показателей на основе формулы ====== ====== Создание показателей на основе формулы ======
  
-#недописаль+===== Зачем нужен показатель-формула ===== 
 +Показатели-формулы позволяют посчитать значения из других типов показателей. \\  
 +Например, можно рассчитать:  
 +  * процент освоения бюджета,  
 +  * показатели освоенного объема,  
 +  * среднюю стоимость работ на единицу площади объекта 
 +  * или премиальную составляющую заработной платы сотрудника.
  
-Это заготовка статьи!+<callout type="primary" icon="true"> 
 +Перед созданием показателей на основе формул необходимо, чтобы в кубе уже был хотя бы один [[product/olap/request|показатель на основании запросов]], иначе переменных для выполнения расчетов в показателе-формуле попросту не будет.</callout>
  
-Статья для переноса -- https://wiki.a2nta.ru/pages/viewpage.action?pageId=19203456+===== Как создать показатель-формулу ===== 
 +  - Зайдите в шаблон OLAP-куба (предварительно [[product/olap/template|его нужно создать]] и [[product/olap/new_metering|добавить измерение]], а также добавить хотя бы один [[product/olap/request|показатель-измерение]]). 
 +  - В портлете "Показатели" -> ''Создать''. \\ <image shape="thumbnail">{{ :product:olap:olap_request_formula_1.png?nolink |}}</image> \\ <TEXT align="center">**Рисунок 1** -- Страница шаблона OLAP-куба</text> 
 +  - Введите название показателя. 
 +  - В поле ''Тип показателя'' выберите ''Формула''
 +  - В портлете «Формула» (Рисунок 2), в выпадающем меню, выберите один из существующих показателей редактируемой сводки. 
 +  - Нажмите кнопку ''Добавить'' для добавления новой строки формулы. 
 +  - В выпадающем меню выберите арифметическую или логическую операцию. 
 +  - Нажмите кнопку ''Добавить'' для добавления новой строки формулы. 
 +  - Выберите следующий показатель / константу / операцию и т.д. \\ <image shape="thumbnail">{{ :product:olap:olap_request_formula_2.png?nolink |}}</image> \\ <TEXT align="center">**Рисунок 2** -- Страница создания показателя на основе формулы</text> 
 +  - Сохраните показатель. 
 + 
 +<callout type="warning" icon="true">Результатом логической формулы является число «0» – если условие не выполняется, число «1» – если условие выполняется.</callout> 
 +<callout type="warning" icon="true">Показатели-формулы, основанные на логических выражениях, можно использовать в других показателях-формулах, либо показателях-индикаторах.</callout> 
 + 
 +==== Значения элементов ==== 
 +|<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|реквизита-процесса]]) расчёт услуги по договору должен рассчитываться исходя из разных ставок. 
 + 
 +**Принцип решения:** (X<sub>1</sub>*Y)*C1+(X<sub>2</sub>*Y)*C<sub>2</sub>+...+(X<sub>n</sub>*Y)*C<sub>n</sub>, где: 
 +  * X<sub>1</sub>, X<sub>2</sub>...X<sub>n</sub> -- значения из справочников 1, 2...n соответственно. 
 +  * Y -- объём работы (количество деталей, число часов и т.п.), который соотносится со ставкой в справочнике. 
 +  * C<sub>1</sub>, C<sub>2</sub>...C<sub>n</sub> -- бинарный коэффициент, результат проверки фазы. Требования к коэффициенту: 
 +    * Может быть только 0 или 1. 
 +    * Только один из коэффициентов в выражении может быть равен 1, вне зависимости от количества возможных коэффициентов (читай -- вариантов, способов расчёта). 
 + 
 +<html> 
 +<!-- 
 +Чтобы рассчитать коэффициент: 
 +  - сделать промежуточный системный справочник для сопоставления значения реквизита-процесса (или классификатора) с его числовым обозначением. \\ //Причина-- В результате вычисления OLAP-куба может быть только число, с текстовыми полями OLAP не работает.// 
 +  - создать показатель-значение, который будет возвращать из этого справочника число -- тот идентификатор, который соответствует значению реквизита; 
 +#недописаль 
 +--> 
 +</html>