MasterData.AfterPrint и PageFooter.AfterPrint
Здравствуйте!
Решаю следующую задачу: надо вывести табличку с подсчетом суммы как по каждой странице, так и глобально.
Для печати суммы по странице использую PageFooter, вывожу итог из переменной, которую заполняю на MasterData.onAfterPrint.
Итоговая (общая) сумма печатается на бэнде Footer, который по условию задачи должен печататься неразрывно с MasterData (т.е. MasterData.KeepFooter = true).
Все заполняется и печатается правильно, пока не доходим до последней записи в выборке. Если при этом MasterData умещается на текущей странице, но Footer требует переноса текущей записи на следующую страницу, то сначала отрабатывает MasterData.onAfterPrint и лишь потом - PageFooter.AfterPrint, т.е. сначала отрабатывает AfterPrint объекта на новой странице, а потом на старой.
Что с этим можно поделать и как вообще решаются подобные задачи умными людьми?
FastReport 3.11, Delphi 5
Решаю следующую задачу: надо вывести табличку с подсчетом суммы как по каждой странице, так и глобально.
Для печати суммы по странице использую PageFooter, вывожу итог из переменной, которую заполняю на MasterData.onAfterPrint.
Итоговая (общая) сумма печатается на бэнде Footer, который по условию задачи должен печататься неразрывно с MasterData (т.е. MasterData.KeepFooter = true).
Все заполняется и печатается правильно, пока не доходим до последней записи в выборке. Если при этом MasterData умещается на текущей странице, но Footer требует переноса текущей записи на следующую страницу, то сначала отрабатывает MasterData.onAfterPrint и лишь потом - PageFooter.AfterPrint, т.е. сначала отрабатывает AfterPrint объекта на новой странице, а потом на старой.
Что с этим можно поделать и как вообще решаются подобные задачи умными людьми?
FastReport 3.11, Delphi 5
Комментарии
И еще - в моем мануале не сказано, в какой момент происходит DataSet.Next.
Я так подозреваю, что это происходит перед заполнением бэндов данными, так что на нашей последней печатаемой записи EOF еще не будет установлен.