Эксперт-Клуб

1Вопрос:

Имеется таблица в инструменте WebIntelligence следующего содержания:

Группа Статей Статья Сумма
Группа 1 Статья 1 100
Группа 1 Статья 2 150
Группа 1 Статья 3 250
Группа 2 Статья 4 50
Группа 2 Статья 5 30
Группа 2 Статья 6 40
Итого:   620

Требуется получить следующий вид отчета:

Статьи и группы Сумма
Группа 1 500
       В т.ч. Статья 2 150
Группа 2 120
       В т.ч. Статья 4 50
       В т.ч. Статья 6 40
Итого: 620

Изложите способы решения этой задачи.

Комментарии:

Дмитрий Гераськин (Рейтинг: 191) 11:10, 16 мая 2011


Комментарий эксперта

Вариант 1.

На уровне юниверса создать иерархию, которая включает группы статей и статьи.

Создать запрос на основе иерархии групп статей и статей.

Использовать member selection (фильтр по выборке элементов иерархии) - исключить статьи 1,3,5.

Вариант 2.

Создать секцию для группы статей и добавить в эту секцию отображение подитога по группе статей.

Создать фильтр по статье на уровне блока секции (исключить статьи 1,3,5).

(Комментарий удалён)
(Комментарий удалён)
(Комментарий удалён)

Дмитрий Буслов (Рейтинг: 1320) 16:06, 25 ноября 2011


Комментарий эксперта

1) Есть Таблица в WebIntelligenceследующего содержания:

 

 

2) Далее создадим новое сведение «Статьи»

 

 

3) Добавим его. Формула будет : =Конкатенация(«     В т.ч. »; [L01 Пр2])

 

 

4) Перенесём Статьи в столбец с Группами

 

 

5) Удалим лишний столбец

 

 

6) Добавим формулу для Статей =NoFilter([Пок1] In( [L01 Пр2]))

7) Добавим быстрый фильтр для статей – 2,4,6

 

8) Добавим Итоги

9) Сделаем разбиение по группе

10) В свойствах разбиения необходимо убрать галочку «отображать нижний колонтитул», поставить галочку «Удалить повторяющиеся значения» и поставить галочку «отображать верхний колонтитутл»

11) Скроем группы

12) В колонтитул разбиения добавим Группы =[L01 Пр1]

13)  Добавим показатель для групп =Sum(NoFilter([Пок1] In ([L01 Пр1])))

14) Поменяем цвет текста и фона для групп

15) Добавим верхний колонтитул для всего документа и подписи :Статьи и Группы, и Сумма, получим искомый результат :

16) Плюсом данного метода на мой взгляд является использование «фильтра» вместо условий if [L01 Пр2] InList(…) и тп. Вот, как пример – добавим ещё и статью 1

17) Мы видим, что всё отобразилось как надо.

В версии 4.0 должна появиться возможность скрывать столбцы и строки, тогда будет возможность сделать всё несколько по-другому. Также если существовала бы возможность скрывать нулевые строки – то всё тоже было бы не сложно, как пример – в BeX-е или на уровне  Univers–а  это сделать можно так:

 

В строках у нас оба признака –

Группы –переименуем его в Статьи и группы

Статьи – Пр2

В столбцах –

Невидимый показатель Сумма без ограничений

Невидимый показатель Пок1 в котором ограничения по группам и статьям, которые мы хотим увидеть

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

И сумма:

Михаил Макаров (Рейтинг: 135) 16:22, 25 ноября 2011


Комментарий эксперта
Группа Статей  Статья  Сумма 
Группа 1 Статья 1 100
Группа 1 Статья 2 150
Группа 1 Статья 3 250
Группа 2 Статья 4 50
Группа 2 Статья 5 30
Группа 2 Статья 6 40

 

Читаю данные в Web Int Rich Client

Убираю колонку «Сумма» в таблице

По переменной «Группа Статей» делаю разрыв и устанавливаю свойства:

            Разбиения – Отображать нижний колонтитул – Снять галку

            Разбиения – Удалять повторяющиеся значения – Снять галку

В свойствах таблицы:

            убираю дополнительный цвет – По умолчанию

отображаю нижний колонтитул

отображаю верхний колонтитул

 

Копирую формат ячеек тела во все ячейки колонтитулов (как в задании)

 

В первой ячейке верхнего колонтитула переменной разрыва устанавливаю формулу:

=[Группа Статей], во второй ячейке - =NoFilter(Sum([Сумма]))

 

В первой ячейке нижнего колонтитула таблицы устанавливаю формулу-текст «Итого:»

 во второй ячейке - =NoFilter(Sum([Сумма]))

 

В первой ячейке верхнего колонтитула таблицы устанавливаю формулу-текст «Статьи и группы»,  во второй ячейке – =NameOf([Сумма ])

 

В колонтитулах таблицы устанавливаем жирность шрифта

В ячейке данных первой колонки (выравниваем по центру) создаем Алерт по условию (выполняется всегда)

=1=1

В формате алерта заменяем содержимое ячеек на формулу

="В т.ч. "+[Статья ]

 

В ячейке данных второй колонки создаем Алерт по условию (выполняется всегда)

=1=1

В формате алерта заменяем содержимое ячеек на формулу

=[Сумма ]

Выравниваем суммы в колонтитулах – влево

Создаю элемент управления вводом по «Статье»

Выбираю – Флажки – Число строк = 10 – Назначить на содержимое отчета

Проверяю функционирование тестового задания

Дмитрий Гераськин (Рейтинг: 191) 16:23, 25 ноября 2011


Комментарий эксперта

Вариант 1.

На уровне юниверса создать иерархию, которая включает группы статей и статьи.

Создать запрос на основе иерархии групп статей и статей.

Использовать member selection (фильтр по выборке элементов иерархии) - исключить статьи 1,3,5.

Вариант 2.

Создать секцию для группы статей и добавить в эту секцию отображение подитога по группе статей.

Создать фильтр по статье на уровне блока секции (исключить статьи 1,3,5).

Дмитрий Аношин (Рейтинг: 174) 16:46, 25 ноября 2011


Комментарий эксперта

Для наглядности рассмотрим эту задачу на примере, в котором:

  1. Группа = Branch (филиал):
  2. Группа 1 = Cheboksary
  3. Группа 2 = Kazan
  1. Статья = Retailer (торговая точка):
  2. Статья 1 = 1002060366 РЕАЛТРАНСАВТО_МАРПОСАДСКОЕ32
  3. Статья 2 = 1002090033 ЧЕБОКСАРЫ-ЛАДА_ВОСТОЧНАЯ6
  4. Статья 3 = 1002119451 Н-АВТО_МАРПОСАДСКОЕ7А
  5. Статья 4 = 1002040129 АВТОЛАЙФ-ПРЕМИУМ_СПАРТАКОВСКАЯ2
  6. Статья 5 = 1002040673 UR126_ПОБЕДЫ93
  7. Статья 6 = 1002103737 РРТ_ЯМАШЕВА76

 

  1. Сумма = Amount(сумма проданных товаров)

 

В таблице 3 изображена исходная таблица, в которой отображены продажи по 2м филиалам:

                                     Таблица 3. Исходная таблица

 

Теперь нам необходимо изменить нашу таблица, чтобы она соответствовала таблице 2.

Я хочу предложить два способа решения данной задачи.

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

 

Способ № 1

Для решения данной задачи мы воспользуемся обычной таблицей.

Далее я по пунктам подробно рассмотрю, как это можно сделать:

1)       Вставим таблицу ( рис. 1), добавим необходимое кол-во строк (рис. 2) и заполним ее текстом (рис. 3), в соответствии с таблицей 2 (требуемый вид отчета):

Рис. 1. Вставка таблицы.

Рис. 2. Добавление строк.


      Рис. 3. Таблица, в которой заполнены заголовки в 1 столбце.

 

2)       Теперь можно заполнять нашу таблицу данными о продажах в торговым точкам.

У нас есть 2 варианта:

   1)Создать переменные.

   2)Написать формулу в строку.

 

Я воспользуюсь вторым вариантом рисунок 4 и 5.

Рис. 4. Вычисления внутри ячеек.

Рис. 5. Конечный результат.

 

Таким образом мы решили реальную задачу с помощью инструмента SAPBOWebInt.

 

Способ № 2.

 

Второй способ не самый удобный, но так же имеет право на существование.

Необходимо создать 6 отдельных запросов, каждый из которых будет нам возвращать требуемую сумму для строки.

 

Список отдельных запросов (рис. 6):

  • Сумма продаж в Чебоксарах
  • Сумма продаж в тт 1002090033 ЧЕБОКСАРЫ-ЛАДА_ВОСТОЧНАЯ6
  • Сумма продаж в Казани
  • Сумма продаж в тт 1002040129 АВТОЛАЙФ-ПРЕМИУМ_СПАРТАКОВСКАЯ2
  • Сумма продаж в тт 1002103737 РРТ_ЯМАШЕВА76
  • Сумма продаж в Казани и Чебоксарах

 

 

Рис. 6. Список категорий, полученных в отдельном запросе.

 

Результат и структура таблицы показаны на рисунках 7 и 8 соответственно:

Рис. 7. Структура таблицы.

Рис. 8. Результат.

 

Способ № 3.

Третий способ, еще неудобней, но также имеет право на существование.

Он отличается от способа № 2 только тем, что в колонке Branchмы будем использовать объект, типа Detail(рис. 9), для каждой строки будет свой запрос со своими фильтрами.

Рис. 9. Объект “Detail”.

На рисунке 10 и 11 изображены схема таблицы и Результат:

Рис. 10. Структура таблицы.

Рис. 11. Результат.

 

Способ №4.

Раз уж начал способы всякие придумывать:), то предложу еще один, последний.

Он уже относиться к области ETLи архитектуры.

 

Если у нас такой формат отчета очень популярен, и другие атрибуты и элементы не появяться, то можно создать атрибут который будет в себе содержать только такие значения, как представлены в колонке “Branch”.