Привет. Мы, случайно, не на одном проекте работаем?
1. Если "в лоб", то 31 тип пересчета по 31 переменной. Итого надо завести 62 переменные с копией отчетной даты (через UE, можно сразу там задать смещения) и всем этим ограничивать отчет по столбцам, поставив на каждый день свой тип пересчета. Но это - варварство.
2. Ты не думал прогрузить остатки по валюте в отдельный провайдер, просчитав в трансформации остатки на каждый день. И грузить только отчетные периоды, чтобы уменьшить число записей. Тогда понадобится всего 31 переменная в Bex запросе. Этот метод проще первого, но потребует технологических усилий по построению цепочек и удалению лишних данных.
3. Сделай инфообъект, который содержит 31 поле атрибутов, для сумм. Его необходимо связать с остатками, к примеру по календарному месяцу, чтобы получился инфонабор. Тогда разработчик сможет в badi на виртуальных признаках/показателях прочитать историю изменения остатков и курсов и разложить рассчитанное по полям. Будет работать медленно, но гарантировано.