Здравствуйте!
Есть товарный отчет где имеются показатели:
Входящий остаток, приход, возврат, списание, исходящий остаток. Выводится сводной таблицей и остаток расчитывается выражением используя "SUM({<[Дата] = {"<$(=[ДатаС])"}>} .... Все приходы минус все расходы со дня открытия магазина". Отчет выводит данные за период "ДатаС" и "ДатаПо".
Сейчас просят добавить колонку "Количество дней за период когда товар был на остатках". Получается нужно чтобы на каждую дату в период С - По Просчитались остатки и просумировались дни когда остаток больше нуля. Можно ли это сделать не задавая новую таблицу с остатками на каждый день?
Хороооший вопрос.
А какая модель, какие исходные данные?
Если надо посчитать количество дней когда был остаток товара, то, думаю, без обработки сведений в скрипте не обойтись.
Я встречал на официальном сайте заявления о том. что остатки считаются формулами, но живых примеров не видел.
Считаю, что лучше будет подготовить такую таблицу в скрипте.
Платформа QlikView 10. Данные отдельно таблица с календарем. И отдельная таблица где на каждую дату различные движения товаров, разными строчками. Я тоже отталкиваюсь от создания таблицы с остатками на каждый день. Минусы что теряется время на обновление такой таблицы и будет отъедать прилично памяти, так как дополнительных данных выйдет очень много.
Остатки считаются так:
Входящий остаток:
Sum({<[Дата] = {"<$(=[ДатаС])"}>} [Кол-во движения товара прихода])
- Sum({<[Дата] = {"<$(=[ДатаС])"}>} [Кол-во движения товара реализация])
- Sum({<[Дата] = {"<$(=[ДатаС])"}>} [Кол-во движения товара выбытие])
- Sum({<[Дата] = {"<$(=[ДатаС])"}>} [Кол-во движения товара перемещение])
+ Sum({<[Дата] = {"<$(=[ДатаС])"}>}[Кол-во движения товара исходящий остаток])
Соответственно в исходящем ДатаС меняется на ДатаПо.
А зачем каждый раз пересчитывать таблицу с остатками.
Можно рассчитать остатки за предыдущие периоды и держать их в qvd-формате.
Расчет остатков текущего периода не должен вызвать проблем.
Память займется остатками, это факт.
Но как поведет себя приложение с расчетом остатков на каждый день выражениями?
Создал таблицу, обновляю только за открытый период, по времени около часа. В выражении работает.
count({<[Дата остаток] = {">=$(=[ДатаС])<=$(=[ДатаПо])"}>}[Остаток на дату])
В отчет загружаю данные только с остатком, в итоге просто подсчитываю количество записей за период.
По памяти нагрузка увеличилась на треть.