Принцип подсчёта итогов примерно такой:
- берём первую строку данных, отрисовываем строки группировок без цифр, запоминая расположение их в печатной форме
- перебираем строки ТЗ, и как только строка ""выходит"" из текущей группы, выводим итоговые цифры во все строки групп, которые уже завершились, после этого выводим строки новых групп без цифр, и всё по новой
Для подсчёта итогов используются массивы, поэтому всё работает достаточно быстро. Правда из-за использования массивов есть и ограничения: 1) группировок м.б. не более 100; 2) * не может быть больше 10000. Если кто-то ухитрится перевалить за эти ограничения, то ему придётся увеличить размерность массивов в классе.
Для вывода строк в печатную форму используются callback-методы (ВывестиСекцию() и ФорматСтроки()), что позволяет получить произвольное оформление. Для дополнительных рассчётов с использованием итоговых сумм по каждой группе также используется callback-метод (ПослеВыводаСтрокиИтогов()).
Класс Отчет.ИтогиПоГруппировкам
Разработка - Разработка внешних компонент
См. также
Внешняя компонента для сканирования (замена TWAIN-компоненты БСП) (Native Win 32/64)
2400 руб.
12.05.2020 26434 132 99
[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)
5000 руб.
14.01.2016 54640 16 21
Мастер создания внешних компонент 1С (технология COM) для DELPHI 6/7/8/2005/2006/2007/2008/2010/XE/XE2/XE3
2000 руб.
28.03.2013 54077 35 14