文档彩票走势图>>FastReport中文文档>>示例 4.带目录、导航和大纲的报告
示例 4.带目录、导航和大纲的报告
在本例中,我们将创建一份具有以下功能的报告:
- 在第一页打印 "Table of Contents"(TOC),它是交互式的,即您可以单击其中的元素导航到相应的页面;
- 在预览窗口中显示大纲,大纲也是交互式的。
报告将使用"Categories"和 "Products" 表。在 TOC 中,我们将打印类别列表。报告的其余部分将打印产品分类列表。报告模板将由两页组成:第一页用于打印 TOC;第二页是报告的主要部分。
我们将首先讨论 TOC。创建新报告并添加 "Categories"和 "Products" 数据源。将 "Data "带连接到 "Categories"表,并按以下方式放置对象:
为了使 TOC 对象具有交互性,请配置其 "Hyperlink "属性:
将类别名称作为书签。我们稍后将定义对象的书签。
要在 TOC 中打印页码,需要执行以下操作:
启用报告的 "double pass "设置。这可以在 "Report|Options..."菜单中完成。需要这样做是因为 TOC 页面会在其他页面之前打印。此时,FastReport 不知道类别将在何处打印;
使用 "Engine.GetBookmarkPage "函数,该函数返回指定书签的页码。在本例中,我们使用"[Categories.CategoryName]"表达式作为书签名称,因此函数调用如下:
在报告的第二页,我们将创建一个主从报告,如下图所示:[Engine.GetBookmarkPage([Categories.CategoryName])]
设置我们在 TOC 中点击元素时导航到的书签。为此,请选择第一个 "Data "带,并在其 "Bookmark "属性中注明以下表达式:
要设置报告大纲,请执行以下操作:[Categories.CategoryName]
- 选择第一个报告页面。这可以通过切换到该页面来完成;
- 在 "Properties "窗口中,为 "OutlineExpression "属性设置以下值:
"Contents"
- 切换到第二个报告页面;
- 选择第一个 "数据 "带,并设置其 "OutlineExpression "属性:
选择第二个 "Data "并设置其 "OutlineExpression "属性:[Categories.CategoryName]
[Products.ProductName]