Добрый день!
У меня ситуация следующая. Есть отчет, если проще то группа, в ней энное количество товара. Далее за выбранный период отображаются в сводной таблице сколько продалось товара, и остаток только на товар где продаж больше нуля. Реализовано функцией IF() продажи больше чем ноль то остаток показываем, если меньше или равно нулю, то остаток показываем ноль. А в настройках стоит, что позиции с нулевым выражением скрываем. Проблема в том, что итоги показывают остаток больше, так как итог сначала суммирует общее количество продаж и только потом проверяется функция IF().
Можно как-то заставить итог по остаткам отображать правильную сумму?
Привет.
Вместо If пользуйтесь анализом множеств ( на эту тему сегодня новая статья вышла (http://blog.atkcg.ru/analiz-mnozhestv-v-qlikview-zvezdnye-ravenstva/))
Попробуйте
sum({<[#Сумма]={'>0'}>} [#Сумма остатка])
В моем случае ситуация сложнее. Пример я привел упрошенный.
В отчете продажи считаются так:
Sum({<[Дата] = {">=$(=[ДатаС])<=$(=[ДатаПо])"}>}[Кол-во движения товара реализация])
-
Sum({<[Дата] = {">=$(=[ДатаС])<=$(=[ДатаПо])"}>}[Кол-во движения товара реализация_интернет])
По мимо этого есть еще столбцы с данными.
И в итоге остаток высчитывается так:
if ( [Приход / Кол-во]=0 and [Торг. реал-ция / Кол-во]=0 and [Неторг. выбытие / Кол-во]=0 and [Вн.перем. между БЕ / Кол-во]=0 //Перечисление полей в функции if(), это название столбцов.
, 0 ,
Sum({<[Дата] = {"<$(=[ДатаС])"}>} [Кол-во движения товара прихода])
- Sum({<[Дата] = {"<$(=[ДатаС])"}>} [Кол-во движения товара реализация])
- Sum({<[Дата] = {"<$(=[ДатаС])"}>} [Кол-во движения товара выбытие])
- Sum({<[Дата] = {"<$(=[ДатаС])"}>} [Кол-во движения товара перемещение])
+ Sum({<[Дата] = {"<$(=[ДатаС])"}>}[Кол-во движения товара исходящий остаток])
Как в данном случае применить анализ множеств я не совсем представляю.
В скрипт не думали перевести расчеты?
Цитата: piton от 17 ноября 2016, 04:29:05
Добрый день!
У меня ситуация следующая. Есть отчет, если проще то группа, в ней энное количество товара. Далее за выбранный период отображаются в сводной таблице сколько продалось товара, и остаток только на товар где продаж больше нуля. Реализовано функцией IF() продажи больше чем ноль то остаток показываем, если меньше или равно нулю, то остаток показываем ноль. А в настройках стоит, что позиции с нулевым выражением скрываем. Проблема в том, что итоги показывают остаток больше, так как итог сначала суммирует общее количество продаж и только потом проверяется функция IF().
Можно как-то заставить итог по остаткам отображать правильную сумму?
Можете поробвовать прописать свои итоги, используя функцию Dimensionality() :
IF( Dimensionality()>=1,
формула показателя,
формула итого)