2010-05-07 61 views
1

我在Turbo Delphi Pro中使用FastReport 4.7.31。FastReport預覽不顯示所有頁面

以下過程根據用戶輸入處理存儲在多個日期文件中的數據。

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.Print打印所有頁面。

frxMyReport.ShowReport顯示只准備了最後一頁

回答

2

ShowReport方法採用可選參數ClearLastReport,其默認值爲true。無論是真是假,ShowReport在顯示報表之前準備報表,因此在您的代碼中,您將丟棄已準備好的所有內容,然後使用最近分配的表格設置重新準備報表。如果您要對代碼進行的唯一更改是將False傳遞給ShowReport,那麼您會發現預覽顯示了所有頁面,但重複了最後一頁。

ShowReport相反,Print方法確實是而不是準備報告。它只打印已經準備好的東西。您需要ShowPreparedReport預覽,而不是ShowReport。請參閱FastReport程序員手冊的第1.9節。