Странное поведение Line#

gpigpi
отредактировано 22:33 Раздел: FastReport 3.0
Есть отчёт такой структуры:
GroupHeader1
MasterData1
GroupFooter1
На GroupFooter1 размещён SubReport с MasterData2.
На первом проходе в CountOfLines заносится число строк MasterData1:
procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);
begin
  with ReportSummary1, Engine do
  begin
      If not FinalPass then
      begin
       CountOfLines:=<Line#>;
      end;
  end
end;
А на втором проходе после печати каждой группы проверяется, не достигнут ли конец отчёта, и если не достигнут, то на новой странице выводится ReportTitle1:
procedure GroupFooter1OnAfterPrint(Sender: TfrxComponent);
begin
   with GroupFooter1, Engine do
     begin
       if (FinalPass) and (<Line#><CountOfLines) then
         begin
           PageHeader1.Visible:=False;
           NewPage;
           PageHeader1.Visible:=True;
           Engine.ShowBand(ReportTitle1);
         end;
     end;
end;
Проблема в том, что после печати группы в Line# содержится число строк+1 бэнда MasterData2
Я в GroupFooter1OnBeforePrint присваиваю дополнительной переменной значение Line#, а в GroupFooter1OnAfterPrint сравниваю её с CountOfLines и таким образом решаю проблему.
Хотелось бы знать - это баг или так и должно быть?

Комментарии

  • отредактировано 22:33
    Используйте <Line>
  • gpigpi
    отредактировано 22:33
    <Line> возвращает номер записи в группе, а мне нужно отследить момент вывода последней записи в отчёте (не в группе), чтобы не формировать последнюю пустую страницу. fp3-отчёт здесь:
    http://rapidshare.de/files/7662943/example.zip.html

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.