Задача, казалось бы, вполне обыкновенная: вывести историю начислений для абонента за период. Выводить промежуточный итог по году и итог по всему. Что-то такое
Итоги по динамическим столбцам считаю с помощью SUM. а вот по статическим ставлю обработку на OnBeforePrint для нужных ячеек и в ней накапливаю нужные суммы, а потом вывожу.
Для случая 1) Думал, что проблема в том, что почему-то не выводятся последние GroupFooter'ы. Для проверки поставил обработку на событие OnBeforePrint. Сработали нужное количество раз. Только почему-то не отображаются...(
Ну что ж. Пока ждал ответа, думал сам . В результате нашел проблему. Думаю, что она в этом. Может, кому-нибудь поможет.
У меня горизонтальный MasterData привязан к одному набору, а вертикальный к другому. Оба набора связаны между собой. Когда для последней строки из набора данных горизонтального MasterData находится соотвествие, то печатается и итог по году и по абоненту. А когда не находится, итоговые строчки пропадают. Так же не выводятся строки, для которых не нашлось соотвествия.
Собственно решил это, сделав так, чтобы всегда было соотвестиве.
Все-таки добиться нормального итога по динамическим столбцам стандартными средствами не удалось (может, и я в чем намудрил). Иногда суммы не выводились, иногда как-то странно суммировалось...
Что сделал в итоге: Поставил обработку на событие OnBeforePrint для динамического столбца на перечении горизонтального и вертикального MasterData. По нему накапливал сумму и сохранял в StringList. Для каждой услуги отдельно. Криво, конечно (постоянно преобразовывать из строки в число и обратно), но другое в голову не пришло. А в итог уже выводил эти значения из StringList.
Как вариант, использовать вместо StringList массивы.
Вот, наверное, и все ))
Комментарии
Для случая 1) Думал, что проблема в том, что почему-то не выводятся последние GroupFooter'ы. Для проверки поставил обработку на событие OnBeforePrint. Сработали нужное количество раз. Только почему-то не отображаются...(
У меня горизонтальный MasterData привязан к одному набору, а вертикальный к другому. Оба набора связаны между собой. Когда для последней строки из набора данных горизонтального MasterData находится соотвествие, то печатается и итог по году и по абоненту. А когда не находится, итоговые строчки пропадают. Так же не выводятся строки, для которых не нашлось соотвествия.
Собственно решил это, сделав так, чтобы всегда было соотвестиве.
Что сделал в итоге: Поставил обработку на событие OnBeforePrint для динамического столбца на перечении горизонтального и вертикального MasterData. По нему накапливал сумму и сохранял в StringList. Для каждой услуги отдельно. Криво, конечно (постоянно преобразовывать из строки в число и обратно), но другое в голову не пришло. А в итог уже выводил эти значения из StringList.
Как вариант, использовать вместо StringList массивы.
Вот, наверное, и все ))