示例 4.帶目錄、導(dǎo)航和大綱的報告
在本例中,我們將創(chuàng)建一份具有以下功能的報告:
- 在第一頁打印 "Table of Contents"(TOC),它是交互式的,即您可以單擊其中的元素導(dǎo)航到相應(yīng)的頁面;
- 在預(yù)覽窗口中顯示大綱,大綱也是交互式的。

報告將使用"Categories"和 "Products" 表。在 TOC 中,我們將打印類別列表。報告的其余部分將打印產(chǎn)品分類列表。報告模板將由兩頁組成:第一頁用于打印 TOC;第二頁是報告的主要部分。
我們將首先討論 TOC。創(chuàng)建新報告并添加 "Categories"和 "Products" 數(shù)據(jù)源。將 "Data "帶連接到 "Categories"表,并按以下方式放置對象:

為了使 TOC 對象具有交互性,請配置其 "Hyperlink "屬性:

將類別名稱作為書簽。我們稍后將定義對象的書簽。
要在 TOC 中打印頁碼,需要執(zhí)行以下操作:
啟用報告的 "double pass "設(shè)置。這可以在 "Report|Options..."菜單中完成。需要這樣做是因為 TOC 頁面會在其他頁面之前打印。此時,F(xiàn)astReport 不知道類別將在何處打印;
使用 "Engine.GetBookmarkPage "函數(shù),該函數(shù)返回指定書簽的頁碼。在本例中,我們使用"[Categories.CategoryName]"表達(dá)式作為書簽名稱,因此函數(shù)調(diào)用如下:
在報告的第二頁,我們將創(chuàng)建一個主從報告,如下圖所示:[Engine.GetBookmarkPage([Categories.CategoryName])]

設(shè)置我們在 TOC 中點擊元素時導(dǎo)航到的書簽。為此,請選擇第一個 "Data "帶,并在其 "Bookmark "屬性中注明以下表達(dá)式:
要設(shè)置報告大綱,請執(zhí)行以下操作:[Categories.CategoryName]
- 選擇第一個報告頁面。這可以通過切換到該頁面來完成;
- 在 "Properties "窗口中,為 "OutlineExpression "屬性設(shè)置以下值:
"Contents"
- 切換到第二個報告頁面;
- 選擇第一個 "數(shù)據(jù) "帶,并設(shè)置其 "OutlineExpression "屬性:
選擇第二個 "Data "并設(shè)置其 "OutlineExpression "屬性:[Categories.CategoryName]
[Products.ProductName]