xy
ХУдератор | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте - возникла проблемка в фр4.1 с итогами по листу Идея стандартная: 1. итог по листу на приклеивать к мастердате -- для этого вводится переменная Y которая на AfterPrint увеличивается, а у PageFooter1.BeforePrint ставится Engine.CurY := Y; 2. на последней странице надо выводить итог страницы перед итогом всего отчета, для чего Engine.ShowBand(PageFooter1) прописывается в ReportSummary.OnAfterCalcHeight при этом PageFooter1.PrintOnLastPage := False; всё вроде хорошо и работает, но теперь у меня появляются группы в отчете, которые очень большие и по сути мне надо, чтобы подвал группы с итогами печатался после итогов страницы (так как раньше было с итогами отчета) PrintOnLastPage тут не работает и вылазит странный глюк.. для того, чтобы печатать подвал страницы только там где надо я делаю следующее: procedure MasterData1OnAfterPrint(Sender: TfrxComponent); begin Y:=Engine.CurY; PageFooter1.Visible := True; end; procedure PageFooter1OnBeforePrint(Sender: TfrxComponent); begin Engine.CurY:=Y; end; procedure GroupFooter1OnAfterCalcHeight(Sender:TfrxComponent); begin if PageFooter1.Visible then Engine.ShowBand(PageFooter1); end; procedure PageFooter1OnAfterPrint(Sender:TfrxComponent); begin PageFooter1.Visible := False; end; Таким образом, если на странице нет данных, а попадают только итоги группы - нули не печатаются (новая группа - с нового листа) однако эти меры - уже следствие того, что на одной из страниц (где попадает только итог) - фастрепорт проглючивает и он в итогах листа пишет не ноль, а итоги предыдущей полной страницы (счетчик не сбрасывает), после этого на всех последующих страницах - одни и те же итоги по листу, хотя итоги по группам и общий итог продолжают считаться правильно отчет на примерно 250 листов, и глюк начинается примерно с 100-го если включить два прохода - тогда итоги по листам на всех страницах перезаписываются глюком на одинаковые если же поменять местами итог по группе и итог по странице, то глюк пропадает, однако это не совсем правильно - бутерброд такой: - итог группа (много) - итог лист (мало) - итог отчет (очень много) естественно хочется получить: - итог лист (мало) - итог группа (много) - итог отчет (очень много) может как-то иначе выводить итог по листу принудительно перед итого группы?
---------- Счастливые мысли приводят к счастливой клеточной биохимии |
|