巢狀報表(子報表)
# 巢狀報表(子報表)
# 1. 說明
有時需要非常複雜的報表,其中包含在設計中的特定點插入的附加數據內容。雖然其中許多報表可以使用FastReport段的排列進行設計,但有時它會變得太複雜。在這些情況下,有必要使用「子報表」對象。
當「子報表」對像插入到設計中時,FastReport會自動新增一個新頁面,該頁面連線到「子報表」。這樣的巢狀報表在設計結構方面類似於多頁報表。唯一的區別是巢狀報表顯示在基本設計頁面上的特定位置,而不是在它之後。輸出此報表時,只要遇到「子報表」對象,報表引擎就會完整地輸出連線的子報表頁面。之後,輸出繼續進行基本設計頁面的其餘部分。
可以將更多「子報表」對像插入子報表設計頁面,從而增加巢狀深度。值得注意的是,FastReport使用子報表的能力可以實現深度巢狀數據。請記住,當使用明細數據段而不是子報表對像時,FastReport中的數據級別數僅限於6。
# 2. 並排的子報表
兩個或多個「子報表」對象可以並排放置在同一數據段上:
此設計允許報表中每個「子報表」的數據輸出具有不同長度的行或記錄,或不同的高度或拉伸程度:
如圖所示,FastReport僅在最長的子報表完成後才繼續輸出基本設計頁面。 Vertical Alignment
屬性還可用於調整每個子報表中的文字對像對齊。
# 3. 使用子報表的限制
由於子報表放在基本設計頁面上,因此它們不能包含以下任何段 :報表(報告)標題、報表(報告)摘要、頁首、頁尾、頁背景或列首、列尾。如果這些段中的任何一個放置在巢狀報表頁面上,則無法識別它們。出於同樣的原因,更改任何巢狀的報表頁面選項沒有意義,因為基本報表頁面的選項會覆蓋任何巢狀頁面的選項。
不要在子報表的對象下面放置對象。
如果這樣做,那麼在子報表中建立的對象將覆蓋主設計頁面上子報表對像下面的所有內容,輸出將如下所示:
要在巢狀報表下方或之後顯示對象,請使用子段:
當多個子報表必須一個放在另一個之下時,也會使用此方法。為每個子報表使用子段並將它們鏈接在一起,將Child1的子屬性設定為Child2,依此類推。
# 4. PrintOnParent選項
子報表對像具有PrintOnParent
屬性,有時可能很有用。預設情況下,此屬性為False。
通常,子報表在基本報表頁面上作為一組段輸出。如果是這樣,包含子報表對象的父段的高度不受子報表中的段控制,即它不能被拉伸。如果子對像檢查器或上下文功能表中的子報表PrintOnParent
屬性設定為True,則子報表中的對象將物理列印在包含子報表對象的段上。這個段子可以拉伸,並可以放置拉伸的物體