Коллеги! Имеется задача, которую возможно кто то уже решил и которая является типовой (типичной) для торговых компаний.
1. Краткая постановка задачи
Имеется таблица фактов сбытовой компании. Таблица содержит записи о продажах со следующими полями
- Формат клиента - Тип_ТТ,
-Код торговой точки – Код_ТТ,
-Номенклатура.
На основании отборов формируется список товаров, образующих товарную матрицу для данного формата клиента. Этот список категорийный менеджер трактует как ассортиментый минимум, который необходимо поддерживать в отгрузках каждой торговой точки (ТТ) данного формата клиентов.
Задача: Для каждой торговой точки ( Код_ТТ) получить список недопоставленной номенклатуры.
2. Решение (так,как я пытался решать)
С точки зрения постановки задачи, речь идет о двух множествах – ассортимент, отобранный в матрицу формата и ассортимент отгрузок за выбранный период. Первое множество определяется альтернативным состоянием {SMF}. Второе множество – текущее( inherited) {$}. Необходимо получить новое множество {SMF-$}, в котором останутся только те товары, которые были в матрице формата СМФ и которые не попали в отгрузки торговой точки.
Решение нужно оформить в виде плоской таблицы (на скриншоте таблица Присутствие СМФ в ТТ):
Выражения для столбцов таблицы:
Позиций в СМФ Concat({SMF} distinct TOTAL Номенклатура,Chr(010))
Асcортимент СМФ Concat( {$<Номенклатура=P({SMF} Номенклатура)>}Distinct Номенклатура,Chr(010))
Позиций в поставках Count( {$<Номенклатура=P({SMF} Номенклатура)>}Distinct Номенклатура)
Ассортимент поставок Concat( {$<Номенклатура=P({SMF} Номенклатура)>}Distinct Номенклатура,Chr(010))
Отсутствует позиций СМФ Count({SMF-SMF*$} Total distinct Номенклатура)
Отсутствует ассорт. СМФ Concat({SMF-SMF*$} distinct TOTAL Номенклатура,Chr(010))
В таблице используется
вычисляемое выражение (Dimension) If(Aggr(Count(Distinct Код_ТТ), Код_ТТ)> 0, Код_ТТ)
3. Проблемы
3.1. По выражениям указанным правильно формируются значения в столбцах только при выборе одной торговой точки. Если выбирается несколько торговых точек, то два последних столбца формируются неправильно:
Что не так в последних двух формулах?
3.2. Как должны быть записаны выражения для столбцов, что бы одно наименование номенклатуры помещалось в одной строке. Я использовал для списков функцию Concat(), и поэтому в одну строку таблицы вписан список – например, из 9 строк. Смотреть можно, но дальше работать неудобно.
Коллеги, убедительно прошу отКЛИКнуться и помочь. Уперся в стену, не могу сдвинуть. Заранее благодарен.