Предварительный просмотр FastReport, не показывающий все страницы

Я использую FastReport 4.7.31 в Турбо Delphi Pro.

Следующая процедура обрабатывает данные, хранившие в нескольких датированных файлах в зависимости от ввода данных пользователем.

    procedure TfrmMain.MyReportPrint;
var  MDate : Tdate;
     S, myfile : string;
     firstone: boolean;
//   Date1, Date2 & ShowPreview are global variables set via a dialog box     
begin
   firstone := true;
   MDate := Date1;
   while MDate < IncDay(Date2, 1)  do
   begin
      DateTimeToString(S,'yyyymmdd',MDate);
      myfile := 'm' + S + '.dbf';
      if FileExists(DataPath + '\' + myfile) then
      begin
         tblPS.Close;
         tblPS.TableName := myfile;
         frxMyReport.PrepareReport(firstone);
         firstone := false;
      end;
      MDate := IncDay(MDate, 1);
   end;
   if ShowPreview then frxMyReport.ShowReport else frxMyReport.Print;
end;

frxMyReport. Печать печатает все страницы.

frxMyReport. ShowReport показывает только последнюю подготовленную страницу.

1
задан ChuckO 7 May 2010 в 14:39
поделиться

1 ответ

Метод ShowReport принимает необязательный параметр ClearLastReport , а его значение по умолчанию - true ]. Независимо от того, правда это или ложь, ShowReport подготавливает отчет перед его отображением, поэтому в вашем коде вы отбрасываете все, что вы уже подготовили, а затем повторно готовите отчет с использованием последних назначенных параметров таблицы. Если бы единственное изменение, которое вы должны были внести в свой код, - это передать False в ShowReport , то вы бы обнаружили, что предварительный просмотр показывает все ваши страницы, но повторяет последнюю страницу.

В отличие от ShowReport , метод Print не подготавливает отчет. Он печатает только то, что уже было подготовлено. Для предварительного просмотра требуется ShowPreparedReport , а не ShowReport . См. Раздел 1.9 Руководства программиста FastReport .

2
ответ дан 3 September 2019 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: