FastReport 4 介紹(Dephi)

TfrxDBDataset  

TfrxUserDataset 數據存取元件。

FastReport 使用這些元件讀取及參考數據庫的字段,這兩個元件都源於 “TfrxDataSet” 並繼承其大部分的功能。 TfrxUserDataSet 元件允許構建未連接到數據庫的報表,而由其它來源接收數(據如:數列、文件等)。在此同時,程序員僅需提供瀏覽此數據集的功能,資料接收並非由此元件執行,而是用其它的方法(例如,經由“TfrxReport.OnGetValue”事件)。

 TfrxUserDataSet 元件有下列的屬性: 

   (1) property RecNo: Integer readonly;目前記錄編號,首筆的記錄編號是“0”

   (2) property Enabled: Boolean default True;定義此 件是否可在designer 裏面使用。

  (3) property RangeBegin: TfrxRangeBegin default rbFirst;數據導航(navigation)的起點。

    下列的值可以使用: rbFirst – 從數據的第一筆記錄開始。rbCurrent – 從當前的記錄開始

   (4)property RangeEnd: TfrxRangeEnd default reLast;數據導航(navigation)的起點。

    下列的值可以使用: reLast – 直到數據結束。ReCurrent – 直到目前的記錄。reCount – “RangeEndCount” 屬性而                  定。

   (5)   property RangeEndCount: Integer;數據集中的數據個數,此功能只在“RangeEnd”屬性等於reCount 有效。

    (6)   property UserName: String;符號名稱。在報表設計環境(Designer)下,將被顯示於DataSet 的下方。

    (7)   property OnCheckEOF: TfrxCheckEOFEvent; TfrxCheckEOFEvent = procedure(Sender: TObject; var Eof: Boolean)of                   object; 此事件在數據集的尾端時,Eof 參數將返回True

    (8)   property OnFirst: TNotifyEvent;數據集移至第一筆的位置時,會觸發此事件。

      (9)   property OnNext: TNotifyEvent;數據集移至下一筆的位置時,會觸發此事件。

     (10) property OnPrior: TNotifyEvent;數據集移至上一筆的位置時,會觸發此事件。

2.   TfrxDBDataSet 元件用來連接以TDataSet, TTable TQuery 爲基類的數據庫元件,有關數據的導航及字段的參考都是自動的,程序員不需特殊的設定。

除上述屬性外,該元件有下列的屬性:

 (1)   property CloseDataSource: Boolean default False;報表創建完成後,關閉數據庫。

 (2)   property OpenDataSource: Boolean default True;在報表創建之前打開數據庫。

   (3)   property FieldAliases: TStrings;數據集字段的符號名稱(別名)

  (4)    property DataSet: TDataSet;

  (5)    property DataSource: TDataSource;連結至TDataSet TDataSource 類型的元件。

  (6)    property OnClose: TNotifyEvent;當關閉數據集時觸發此事件。

 (7)    property OnOpen: TNotifyEvent;當打開數據集時觸發此事件

3.    TfrxDesigner TfrxDesigner 元件是報表設計器,當使用此元件,你的工程文件就可以使用報表設計器,此元件它只包含一些報表設計器的設定,當加入”frxDesign” 單元到uses 清單中,就表明與報表設計器連接上了。

        此元件包含下列的屬性:

        (1)   property CloseQuery: Boolean default True;定義結束設計報表是否詢問儲存報表之用。

property OpenDir: String;打開報表的預置數據目錄

        ( 3)   property SaveDir: String;儲存報表的預置數據目錄。

         (4)   property Restrictions: TfrxDesignerRestrictions;報表設計環境下,限制不同的報表操作標識(flag),此標識包含單一或混合數據值: drDontInsertObject – 禁止插入物件drDontDeletePage – 禁止刪除頁面drDontCreatePage – 禁止建立新的頁面 drDontChangePageOptions – 禁止修改頁面屬性drDontCreateReport – 禁止建立新報表 drDontLoadReport – 禁止載入報表drDontSaveReport – 禁止儲存報表 drDontPreviewReport – 禁止預覽報表drDontEditVariables – 禁止編輯變量 drDontChangeReportOptions – 禁止修改報表屬性

       (5)    property OnLoadReport: TfrxLoadReportEvent; TfrxLoadReportEvent = function(Report: TfrxReport): Boolean of object; 此事件發生在載入報表之時。利用此事件,你可以從數據庫載入報表。

       (6)    property OnSaveReport: TfrxSaveReportEvent; TfrxSaveReportEvent = function(Report: TfrxReport;SaveAs:Boolean): Boolean of object; 此事件發生在儲存報表之時。利用此事件,你可以將報表儲存於數據庫中。

      (7)   property OnShow: TNotifyEvent;此事件發生在啓動報表設計環境時。

4.   TfrxPreview 此元件專供建立自定義報表合預覽窗口使用。

      (1)   procedure AddPage;加入空白頁面到報表末端。

      (2)   procedure DeletePage;刪除當前頁。

      (3)   procedure Print;打印報表。

      (4)   procedure LoadFromFile;顯示文件載入窗口。

      (5)   procedure LoadFromFile(FileName: String);載入指定的文件。

      (6)   procedure SaveToFile;顯示文件儲存窗口。

      (7)   procedure SaveToFile(FileName: String);儲存文件到指定的文件名稱

      (8)   procedure Edit;載入當前頁至設計模式供編輯使用。

      (9)   procedure Export(Filter: TfrxCustomExportFilter);使用指定的導出過濾器導出報表。

      (10) procedure First;第一頁。

      (11) procedure Next;下一頁。

      (12) procedure Prior;上一頁

      (13) procedure Last;最後一頁。

      (14) procedure PageSetupDlg;顯示頁面設定窗口。

      (15) procedure Find;顯示文字搜尋窗口。

      (16) procedure FindNext;繼續找下一個。

      (17) procedure Cancel;取消創建報表。

      (18) procedure Clear;清除報表。

      你可以使用下列屬性:

       (1)   property PageCount: Integer readonly;報表頁數。

       (2)   property PageNo: Integer;目前報表頁碼(起始值爲1)。要移至其它頁面,指定此屬性的值即可。

       (3)   property Tool: TfrxPreviewTool;選取工具。

       (4)   property Zoom: Extended;顯示比例,“1” 代表100%

       (5)   property ZoomMode: TfrxZoomMode;顯示模式,可以的顯示模式如下:zmDefault – 預置值,顯示比例根據“Zoom” 屬性而定zmWholePage – 整頁模式zmPageWidth – 與頁面寬度相同 zmManyPages – 一屏顯示多頁

      (6)   property OutlineVisible: Boolean;是否顯示報表大綱(樹狀結構)

      (7)   property OnPageChanged: TfrxPageChangedEvent;目前頁面要改變時,此事件將被觸發。

----------------------------------------------------

----------------------------------------------------

 

 

1date給字段設置別名:

使用FRXDBDATASET FieldAliases屬性,示例如下:
with TfrxDBDataset(Sender) do
begin
 FieldAliases.Clear;
 for f:=0 to Dataset.FieldCount-1 do
 begin
  FieldAliases.Add(dataset.Fields[f].FullName+'='+dataset.Fields[f].DisplayLabel);//
設置FRXDBDATASET的字段別名爲對應的數據集字段的DisplayLabel
  end;
end;
注意:FRXDBDATASET的字段別名的格式爲"字段名=別名"

2 TfrxUserDataSet 給設置別名: 設置屬性UserName

property UserName: String;符號名稱。在報表設計環境(Designer)下,將被顯示於DataSet 的下方。

3 Running a report 執行報表應用下列兩個“TfrxReport”元件的方法啓動報表:procedure ShowReport(ClearLastReport: Boolean = True);

4, Designing a report 設計報表通過“TfrxReport.DesignReport”方法調用報表設計器(reportdesigner),要具有設計報表的功能,你必須在工程文件中加入“TfrxDesigner”元件,或在uses 加入“frxDesgn”單元。

5, 加載、儲存報表

function LoadFromFile(const FileName: String; ExceptionIfNotFound: Boolean = False): Boolean; 載入指定的報表,假如第二個參數的值等於”True ” 且指定的文件不存在,然後它會產生一個例外。假如文件載入成功,它返回“True”

procedure LoadFromStream(Stream: TStream);從數據流(stream)載入報表。

procedure SaveToFile(const FileName: String);儲存報表至指定的文件名。

procedure SaveToStream(Stream: TStream);儲存報表至數據流(stream) 。報表預置的後綴名稱爲“FR3”

範例: frxReport1.LoadFromFile('c:/1.fr3'); frxReport1.SaveToFile('c:/2.fr3');

6 Building a composite report (batch printing) 建立複合報表(批量打引)

在某些情況下,我們必須一次打印數份報表,或封裝及實現多份報表於同一個預覽窗口。要執行這項工作,在FastReport 中有多個工具,允許建立一份新的報表,置於另一份已存在的報表末端,«TfrxReport.PrepareReport»方法有此«ClearLastReport», «True»,此參數定義是否清除前一份已建立的報表。下列的程序碼示範如何從兩個報表定義文件,批次建立一份報表: frxReport1.LoadFromFile('1.fr3'); frxReport1.PrepareReport; frxReport1.LoadFromFile('2.fr3'); frxReport1.PrepareReport(False); frxReport1.ShowPreparedReport; 我們載入第一個報表並在後臺處理報表(不顯示),然後我們載入第二份報表到同一«TfrxReport»物件,並置參數 «ClearLastReport» 的值爲假(False)建立報表。此功能允許第二份報表的結果接在第一份報表的後面。最後,我們將兩份報表顯示在同一個預覽窗口中。

7 Numbering of pages in a composite report 複合報表中的頁數你可以使用 «Page», «Page#», «TotalPages» «TotalPages#» 系統變量顯示頁碼或總頁數。在複合式報表,這些變量代表的意義如下:Page -目前報表的頁碼Page# -批次報表的頁碼TotalPages -目前報表的總頁數(報表必須設定爲two-pass)TotalPages# -批次報表的總頁數 Combination of pages in a composite report 複合報表的合併頁如上所述,當打印時,報表設計的屬性 «PrintOnPreviousPage»可以利用前一頁的可用空間打印下一頁的內容。在複合報表中,它允許你在前一份報表最後一頁的可用空間上建立一份新的報表,要執行此功能,必須在每一份連續報表的第一個設計頁面啓動屬性«PrintOnPreviousPage»

8 Interactive reports 交互式報表在交互式報表中,我們可以在預覽窗口定義任何報表物件對鼠標按下的反應。例如,使用者選擇數據列,然後做一份新的報表,顯示選取列的明細數據。任何報表都可以成爲交互式報表,要執行此操作,你只需建立TfrxReport.OnClickObject 事件處理程序。下面是此事件處理的範例:

procedure TForm1.frxReport1ClickObject(Page:TfrxPage;View:TfrxView;Button: TMouseButton; Shift: TShiftState; var Modified: Boolean);

begin

if View.Name = 'Memo1' then

ShowMessage('Memo1 contents:' + #13#10 + TfrxMemoView(View).Text);

if View.Name = 'Memo2' then

begin

TfrxMemoView(View).Text:=InputBox('Edit','Edit.Memo2.text:', TfrxMemoView(View).Text);

Modified := True;

end;

end;

 

發佈了68 篇原創文章 · 獲贊 16 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章