Баланс платежей, планирование расходов и доходов - Сумма с накоплением в отчете

Аватара пользователя
Александр Антошук
Сообщения: 4
Зарегистрирован: 15.12.2016 16:47

Баланс платежей, планирование расходов и доходов - Сумма с накоплением в отчете

16.12.2016 09:52

Хотелось бы в отчете иметь поле, содержащее сумму с накоплением, т.е. результат сложения данной записи и всех предыдущих записей.  Это нужно для отображения совокупных значений для группы записей (или за определенный период времени).
 

Добавлено спустя 16 часов 53 минуты 42 секунды:
Эта возможность необходима для того что бы из "Плана платежей"  легким движением руки сделать "Баланс платежей".
Существующий отчет План (Календарь) платежей  просто констатирует факт того что платежи нужно будет сделать в определенный день.   http://planfix.livejournal.com/17471.html

А вот будут ли у нас деньги на счету в этот момент с учетом планируемых поступлений и планируемых расходов?

При добавлении поля, суммирующего все Платежи и Расходы  появлялась бы восхитительная возможность для человека ответственного за планирование финансовой деятельности посмотреть перспективу с разбивкой по датам - сколько к данному конкретному дню будет средств на балансе что бы вовремя произвести все оплаты, и если надо то передвинуть даты планируемых платежей что бы не было провалов (невозможности вовремя оплатить то что требуется).

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

В Excel такая возможность существует за счет обращения в формуле к предыдущей ячейке.
Но экспортировать Календарь платежей для этого в Эксель крайне неудобно, так как его при этом необходимо каждый раз скачивать при изменении планируемых дат.

В MS Access такая возможность организована в виде свойства  Поля - "Сумма с накоплением" для группы в отчете.

Аватара пользователя
Dmitry Goncharenko
Сообщения: 4120
Зарегистрирован: 06.06.2012 13:54

16.12.2016 14:12

Это большой и сложный вопрос, Александр. Даже в своей изначальной постановке Вы краешком затронули его сложность во фразе
Это нужно для отображения совокупных значений для группы записей (или за определенный период времени).
Первая часть вопроса: интерфейсное решение. Как сделать настройку задания условий, по которым данные должны суммироваться в данном конкретном поле данного конкретного отчета? Как это должно быть связано с общими параметрами отчета? Необходимо решение, которое с одной стороны будет достаточно универсальным и покроет большое количество возможных ситуаций, а с другой - достаточно простым и интуитивным, чтобы им смогли пользоваться другие пользователи, а не только Вы, как автор идеи и мы, как ее реализаторы.

Вторая часть вопроса сложнее, она связана с возможными ожиданиями от этого инструмента других пользователей. Но сразу в нее погружаться не будем, давайте попробуем начать с обсуждения Вашего видения и видения других заинтересованных пользователей по первой части вопроса.

Аватара пользователя
Александр Антошук
Сообщения: 4
Зарегистрирован: 15.12.2016 16:47

16.12.2016 14:46

По вопросу интерфейса думаю есть несколько решений, Два из них по аналогии с примерами в Excel и Access:

1. Добавить в синтаксис Формулы  возможность ссылаться на Ячейку предыдущей строки. 
Например, Формула  для ячейки:    А +  J(-1) + D
Что означает что значение должно браться из столбца J предыдущей строки (если она есть). 

2. При выборе типа значения для группировки  "При группировке выводить:"   Добавить тип значения  "Сумма с накоплением".
Это будет означать что значение будет не просто суммироваться внутри группы, (Как для  "Суммы значений") но к нему будет добавляться суммы из всех предыдущих групп.

Первый вариант подходит для запросов без группировки.
Второй вариант подходит для запросов с группировкой значений.

SQL запрос может быть таким:   select t.id, sum(t.sum1) over (order by t.id)  from t

---------------------------
Еще одним применением этой функции можно было бы сделать нумерацию строк (или групп) в отчете.

И отчет по продажам с нарастающим итогом:   
http://excel2.ru/sites/default/files/us ... SUM-16.png

Вот здесь нашел упоминание того что отчеты с нарастающим итогом нужны не только мне
viewtopic.php?f=8&t=2036

Аватара пользователя
Dmitry Goncharenko
Сообщения: 4120
Зарегистрирован: 06.06.2012 13:54

16.12.2016 18:57

2. При выборе типа значения для группировки  "При группировке выводить:"   Добавить тип значения  "Сумма с накоплением".
Это будет означать что значение будет не просто суммироваться внутри группы, (Как для  "Суммы значений") но к нему будет добавляться суммы из всех предыдущих групп.
В этом варианте имеется в виду суммы в пределах данного отчета, правильно я понимаю?

Аватара пользователя
Михаил Храпунов
Сообщения: 460
Зарегистрирован: 23.05.2013 21:46

16.12.2016 19:26

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

Я за вычисление. Т.е. итог в текущем отчете накапливается построчно как написано у Александра, а цифра на начало периода рассчитывается как сумма по всему что было до этого.

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

Аватара пользователя
Michael G.
Сообщения: 281
Зарегистрирован: 29.06.2014 17:11

16.12.2016 20:03

В принципе запрос который посчитает сумму до начала периода на практике довольно быстро отработает.
Это Вы фантазируете.)

Аватара пользователя
Dmitry Goncharenko
Сообщения: 4120
Зарегистрирован: 06.06.2012 13:54

17.12.2016 12:16

Я не зря спросил, идет ли речь о подсчете сумм в пределах отчета - если говорить о хранении остатков и выводе их на любую нужную дату, то там все очень и очень неоднозначно. Это и есть та вторая часть вопроса, которую я пока не хотел бы трогать.

Аватара пользователя
Александр Антошук
Сообщения: 4
Зарегистрирован: 15.12.2016 16:47

17.12.2016 15:26

В этом варианте имеется в виду суммы в пределах данного отчета, правильно я понимаю?
Да. в пределах одного отчета.

Аватара пользователя
Александр Антошук
Сообщения: 4
Зарегистрирован: 15.12.2016 16:47

19.12.2016 16:43

Так в чем же состоит сложность реализовать такой запрос в рамках одного отчета?  
Если без разговора о хранении остатков...

Аватара пользователя
Dmitry Goncharenko
Сообщения: 4120
Зарегистрирован: 06.06.2012 13:54

06.01.2017 17:10

Сложность в том, что сейчас формулы, кроме итогов, рассчитываются на сервере, а основное формирование отчетов идет на клиенте (в браузере). Для реализации возможности ссылки на произвольные строки отчета в формулах, необходимо реализовывать расчеты формул на клиенте, а это достаточно ощутимый объем работы.

И второе соображение: по нашим наблюдениям (и Ваш кейс тоже это подтверждает), в основном такая необходимость возникает в случаях, когда нужно учитывать остатки за предыдущий период. Если реализовать возможность ссылаться на предыдущие строки отчета, но не реализовать механизм хранения остатков, то мы своими руками строим ловушку, причем одновременно для себя и для наших пользователей:
- пользователи начнут вести в ПланФиксе процессы, основанные на учете остатков, не имея механизма остатков - просто выполняя отчет каждый раз с самого начала
- через короткое время, измеряемое месяцами, формирование таких отчетов будет занимать много времени, что очень некомфортно
- при этом формирование этих отчетов будет все сильнее грузить наши сервера, что помимо всего прочего еще и затратно.

Поэтому мы предпочитаем не двигаться в сторону адресации к другим строкам отчета при расчете формул, пока (и если) мы не решим сделать в ПланФиксе механизм хранения остатков. А это очень и очень серьезное решение, которое влечет за собой множество последствий.

Аватара пользователя
Михаил Храпунов
Сообщения: 460
Зарегистрирован: 23.05.2013 21:46

06.01.2017 20:24

А это очень и очень серьезное решение, которое влечет за собой множество последствий.
Без него никак...

Ответить