Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
product:olap:case_system_table [17.07.2019 13:12] maynproduct:olap:case_system_table [22.04.2020 11:08] (текущий) mayn
Строка 3: Строка 3:
 Частый кейс: нужно сопоставить (перемножить, поделить, сравнить) одни значения с другими. Частый кейс: нужно сопоставить (перемножить, поделить, сравнить) одни значения с другими.
  
-Предположим, мы хотим посчитать цену отгруженного товара. \\ +Предположим, мы хотим посчитать цену отгруженного товара. Или посчитать ставку сотрудников по трудозатратам. \\ 
 Разберемся на яблоках. =) Разберемся на яблоках. =)
  
 {{ :product:olap:apples.png?nolink&150 }} {{ :product:olap:apples.png?nolink&150 }}
  
-Чтобы всё получилоськак надо, нам нужно 2 [[product:tables:about|справочника]]: +Чтобы всё получилось как надо, нам нужно 2 [[product:tables:about|справочника]]: 
-  * {{fa>cog}} [[product:tables:admin:system_in_general_table|системный справочник]]+  * {{fa>cog}} [[product:tables:admin:system_table|системный справочник]]
   * и обычный.   * и обычный.
  
Строка 17: Строка 17:
 Системный справочник содержит какие-то константы или, по крайней мере, значения, актуальные на протяжении какого-то времени. \\  Системный справочник содержит какие-то константы или, по крайней мере, значения, актуальные на протяжении какого-то времени. \\ 
 Например: Например:
-^Дата записи^Фрукт^Цена за ед.^+^Дата записи^Фрукты^Цена за ед.^
 |01.01.2010|Яблоки|10| |01.01.2010|Яблоки|10|
 |01.01.2018|Яблоки|50| |01.01.2018|Яблоки|50|
Строка 23: Строка 23:
 <col sm="6" lg="5"> <col sm="6" lg="5">
 И обычный справочник, с информацией об объёмах проданного товара: И обычный справочник, с информацией об объёмах проданного товара:
-^Дата записи^Фрукт^Единиц^+^Дата записи^Фрукты^Единиц^
 |01.06.2013|Яблоки|2| |01.06.2013|Яблоки|2|
 |02.03.2015|Яблоки|3| |02.03.2015|Яблоки|3|
Строка 33: Строка 33:
 </grid> </grid>
  
-Предположим, что мы хотим узнать, сколько всего мы заработали на всех поставках суммарно. Для этого нужно перемножить цену на яблоки, актуальные на определённые даты, с объёмом проданных яблок.+Предположим, надо узнать, сколько всего мы заработали на всех поставках суммарно. Для этого перемножим цену яблок, актуальную на определённые даты, на объём проданных яблок.
  
 **Как это сделать в ADVANTA?** **Как это сделать в ADVANTA?**
Строка 39: Строка 39:
 ===== Шаг 1. Создать и заполнить системный справочник ===== ===== Шаг 1. Создать и заполнить системный справочник =====
 {{ :product:olap:table_system_illustration.png?nolink&400|}} {{ :product:olap:table_system_illustration.png?nolink&400|}}
 +
 +**Создайте системный справочник "Цена на фрукты".**
 +
   - Администрирование -> Структура базы данных -> Справочники -> создать новый справочник.   - Администрирование -> Структура базы данных -> Справочники -> создать новый справочник.
     - Использовать дату -- ''Да, ручной ввод''.     - Использовать дату -- ''Да, ручной ввод''.
Строка 47: Строка 50:
   - Заполнить значения этого справочника:    - Заполнить значения этого справочника: 
     - Администрирование -> Структура базы данных -> Справочники -> напротив нужного справочника {{product:objects:gant:edit_gant.png?nolink|edit}}     - Администрирование -> Структура базы данных -> Справочники -> напротив нужного справочника {{product:objects:gant:edit_gant.png?nolink|edit}}
-    - Добавить/изменить необходимые записи. <callout type="danger">Важно! Даты в этом справочнике должны быть более ранними, чем те, которые будут в обычном справочнике, который будут заполнять пользователи. В противном случае, даты друг друга "не найдут".</callout>+    - Добавить/изменить необходимые записи.  
 +<callout type="danger" title="Важно!">Даты в этом справочнике должны быть более ранними, чем те, которые будут в обычном, куда пользователи будут [[product:tables:users:add_note|делать записи]]. В противном случае, даты друг друга "не найдут".</callout>
  
 ===== Шаг 2. Создать и заполнить обычный справочник ===== ===== Шаг 2. Создать и заполнить обычный справочник =====
 {{:product:tables:table_illustration_3.png?nolink&200 |}} {{:product:tables:table_illustration_3.png?nolink&200 |}}
 +
 +**Создайте справочник "Продажа фруктов".**
 +
   - Администрирование -> Структура базы данных -> Справочники -> [[product:tables:admin:new|создать новый справочник]]. \\ В настройках справочника ориентируйтесь на свои бизнес-процессы и удобство пользователей.   - Администрирование -> Структура базы данных -> Справочники -> [[product:tables:admin:new|создать новый справочник]]. \\ В настройках справочника ориентируйтесь на свои бизнес-процессы и удобство пользователей.
   - [[product:tables:admin:edit|Настроить справочник по всем стандартным канонам]].   - [[product:tables:admin:edit|Настроить справочник по всем стандартным канонам]].
Строка 57: Строка 64:
     - пригласить пользователей заполнить значения справочника;     - пригласить пользователей заполнить значения справочника;
     - импортировать записи справочника;     - импортировать записи справочника;
-    - настроить [[product:forms:admin:new_form|форму и собирать данные]] от пользователей.+    - настроить [[product:forms:admin:about|форму и собирать данные]] от пользователей.
  
 ===== Шаг 3. Создать OLAP-куб и настроить его ===== ===== Шаг 3. Создать OLAP-куб и настроить его =====
-==== 3.1 Новый шаблон и измерения куба ====+==== 3.1 Новый шаблон куба ====
  
-==== 3.2 Показатель-запрос из системного справочника ====+{{:product:olap:olap_illustration_10.png?nolink&120 |}} 
 + 
 +**Создайте новый OLAP-куб "Цена сделок по фруктам".** 
 + 
 +  - Администрирование → Структура базы данных → OLAP-кубы -> ''Создать''
 +  - Заполните поля формы: 
 +    * ''Название'' -- //Цена сделок по фруктам//; 
 +    * ''Описание'' -- может помочь для поиска нужного OLAP-куба при дальнейших настройках; 
 +    * выберите иконку, чтобы было проще ориентироваться; 
 +    * ''Число цифр после запятой'' -- укажите количество знаков, до которого будут округляться значения показателей в отчетах; по умолчанию значение "2"
 +    * чек-бокс ''Показывать только одну (последнюю по времени) запись по проекту'' оставить пустым. 
 +    * ''Режим обновления'' -- выберите в зависимости от общей нагруженности системы и размеров данных, с которыми куб будет работать. \\ Чтобы данные для пользователей в отчётах открывались быстро, выберите "Один раз в сутки" или "По таймеру". \\ [[product:settings:system:timer|Настройки таймера.]] 
 + 
 +==== 3.2 Создать измерения ==== 
 +{{:product:olap:olap_illustration_11.png?nolink&120 |}} 
 +  - В созданном шаблоне OLAP-куба в блоке "Измерения" -> ''Создать''
 +  - [[product/olap/new_metering|Создайте измерение]]-дату: \\ <image shape="thumbnail">{{ :product:olap:olap_funny_2.png?nolink |}}</image> 
 +  - Создайте измерение-связь между справочниками -- это реквизит-классификатор "Фрукты": \\ <image shape="thumbnail">{{ :product:olap:olap_funny_3.png?nolink |}}</image> 
 + 
 +<callout type="success">Если у вас есть другие реквизиты-классификаторы в справочниках, добавьте их в измерения. Вдруг пригодятся. ;)</callout> 
 + 
 +Так будет выглядеть блок с измерениями в примере с яблоками: 
 +<image shape="thumbnail">{{ :product:olap:olap_funny_1.png?nolink |}}</image>
  
 ==== 3.3 Показатель-запрос из обычного справочника ==== ==== 3.3 Показатель-запрос из обычного справочника ====
 +{{:product:olap:olap_illustration_12.png?nolink&120 |}}
  
-==== 3.4 Показатель-формула, чтобы посчитать ====+**Создайте показатель-запрос "Фруктов продано всего"**.
  
 +  - В блоке "Показатели" -> ''Создать''.
 +  - Блок "Свойства показателя OLAP-куба":
 +    - введите название измерения -- //Фруктов продано всего//;
 +    - "Тип показателя" -- ''Запрос'';
 +    - "Свойства" -- поставить чек-бокс на ''Агрегация''.
 +  - Блок "Настройки запроса":
 +    - "Источник" -- ''Справочник'' -> выберите из списка справочник "//Продажа фруктов//" (название того справочника в который пользователи вносят информацию);
 +    - "Реквизит" -- выберите тот **числовой** реквизит, в который пользователи вносят количество проданных фруктов. \\ //Если числовой реквизит в справочнике один, то и выбора не будет. Он встанет сюда сам.//
 +    - "Параметры":
 +      - "Измерение OLAP-куба" -- выберите измерение-связующее между справочниками -- //Фрукты//;
 +      - "Дата источника" -- все даты, кроме "Системной" -- это даты, которые относятся к объекту, из которого была сделана запись в справочник; чтобы получить дату именно записи в справочник, выбирайте ''Системный'';
 +      - "Дата OLAP-куба" -- ''Дата (точный)''.
 +  - Сохраните изменения.
  
-----------------------------+<image shape="thumbnail">{{ :product:olap:olap_funny_4.png?nolink |}}</image> 
 + 
 +==== 3.4 Показатель-запрос из системного справочника ==== 
 +{{:product:olap:olap_illustration_12.png?nolink&120 |}} 
 + 
 +**Создайте показатель-запрос "Актуальная цена на дату"**. 
 + 
 +  В блоке "Показатели" -> ''Создать''
 +  - Блок "Свойства показателя OLAP-куба": 
 +    - введите название измерения -- //Актуальная цена на дату//; 
 +    - "Тип показателя" -- ''Запрос''; 
 +    - "Свойства" -- поставить чек-бокс на ''Скрытый''
 +  - Блок "Настройки запроса": 
 +    - "Источник" -- ''Справочник'' -> выберите из списка справочник "//Цена на фрукты//" (название системного справочника); 
 +    - "Реквизит" -- выберите тот **числовой** реквизит, куда внесена цена на фрукты. \\ //Если числовой реквизит в справочнике один, то и выбора не будет. Он встанет сюда сам.// 
 +    - "Параметры": 
 +      - "Измерение OLAP-куба" -- выберите измерение-связующее между справочниками -- //Фрукты//; 
 +      - "Дата источника" -- ''Системный''; 
 +      - "Дата OLAP-куба" -- ''Дата (относительный)''
 +  - Сохраните изменения. 
 + 
 +<image shape="thumbnail">{{ :product:olap:olap_funny_5.png?nolink |}}</image> 
 + 
 +==== 3.5 Показатель-формула, чтобы посчитать ==== 
 +{{:product:olap:olap_illustration_13.png?nolink&120 |}} 
 + 
 +**Создайте показатель-формулу "Цена сделки"**. 
 + 
 +  - В блоке "Показатели" -> ''Создать''
 +  - Блок "Свойства показателя OLAP-куба": 
 +    - введите название измерения -- //Цена сделки//; 
 +    - "Тип показателя" -- ''Формула''; 
 +    - "Свойства" -- поставить чек-бокс на ''Агрегация''
 +  - Блок "Формула" -> последовательно ''Добавить'' показатель //Актуальная цена на дату//, знак %%*%%, показатель //Фруктов продано всего//
 +  - Сохраните изменения. 
 + 
 +<image shape="thumbnail">{{ :product:olap:olap_funny_6.png?nolink |}}</image> 
 + 
 +------------------------
  
 {{ :product:olap:olap_illustration_6_1.png?nolink&800 |}} {{ :product:olap:olap_illustration_6_1.png?nolink&800 |}}
 +
 +===== Шаг 4. Проверить, что получилось =====
 +
 +{{:product:olap:olap_illustration_14.png?nolink&130 |}}
 +
 +**Создайте [[product:reports:olap|OLAP-отчёт]], чтобы проверить, что получилось.**
 +
 +  - Рабочий стол ADVANTA (Главная страница) -> в модуле слева "Мои отчёты" -> "+ Добавить отчёт".
 +  - Выберите в блоке с отчётами OLAP-куб с //"Цена сделок по фруктам"//.
 +  - Выберите в [[product:reports:filters|фильтре]] те объекты, к которым привязан справочник, куда пользователи вносят данные.
 +  - Посмотрите, что получилось.
 +
 +Вероятно, у вас возникнет вопрос, как вытащить, поменять поля, которые формируются показателями OLAP-куба. \\ 
 +Они находятся не в блоке "Вывести список скрытых колонок", а прячутся в "Заголовках полей данных":
 +
 +<image shape="thumbnail">{{ :product:olap:olap_funny_7.png?nolink |}}</image>
 +
 +<image shape="thumbnail">{{ :product:olap:olap_funny.gif?nolink |}}</image>
 +
 +---------------------
 +
 +См. также:
 +  * [[product:olap:case_index|как посчитать количество записей в справочнике]];
 +  * [[product/olap/case_average_bill|как узнать средний чек по сделкам.]]